一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - Spring常用配置及解析類說(shuō)明

Spring常用配置及解析類說(shuō)明

2021-02-21 11:57strivezxq Java教程

這篇文章主要介紹了Spring常用配置及解析類說(shuō)明,涉及Spring常用配置項(xiàng)的方法以及它的解析類等相關(guān)內(nèi)容,具有一定參考價(jià)值,需要的朋友可以了解下。

springMVC配置用法的文章很多,但具體描述清楚的不多,這里主要介紹下常用的配置項(xiàng)的用法,以及它的解析類,springMVC處理內(nèi)容有兩種方式,一種是converter,另一種是ViewResolver,兩種都能處理json,xml以及form內(nèi)容格式。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:context="http://www.springframework.org/schema/context"
   xmlns:aop="http://www.springframework.org/schema/aop" xmlns:mvc="http://www.springframework.org/schema/mvc"
   xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:util="http://www.springframework.org/schema/util"
   xmlns:c="http://www.springframework.org/schema/c"
   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd 
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
     http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
     http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd">
 
<!-- 如果controller里要用到配置,才需要加載配置,因?yàn)橐话氵@個(gè)配置由DispatchServlet來(lái)加載,和spring監(jiān)聽(tīng)類不在一個(gè)上下文里,想要知道原因請(qǐng)看
http://blog.csdn.net/strivezxq/article/details/43795081 這篇文章詳細(xì)解析了spring初始化過(guò)程 -->
 
   <context:property-placeholder location="classpath:app.properties" />
<!--Scans the classpath for annotated components @Component, @Repository, @Service, and @Controller 
通過(guò)use-default-filters="false",可以設(shè)置只掃描哪些注釋,一般springMVC配置只加載下面兩種注釋
-->
<context:component-scan base-package="your.base.package" use-default-filters="false">
 
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
<context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/>
</context:component-scan>
<!-- <context:component-scan annotation-config = "true">已經(jīng)包含了context:annotation-configr的功能,所以這個(gè)配置基本沒(méi)必要配置,激活在bean類中被檢測(cè)到的各種注釋:Spring's @Required and
   @Autowired, as well as JSR 250's @PostConstruct, @PreDestroy and @Resource (if available),
   JAX-WS's @WebServiceRef (if available), EJB3's @EJB (if available), and JPA's
   @PersistenceContext and @PersistenceUnit (if available) -->
 
<context:annotation-config />
<!--會(huì)在Spring MVC上下文中定義一個(gè) org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler, 它會(huì)像一個(gè)檢查員,對(duì)進(jìn)入DispatcherServlet的URL進(jìn)行篩查,如果發(fā)現(xiàn)是靜態(tài)資源的請(qǐng)求,就將該請(qǐng)求轉(zhuǎn)由Web應(yīng)用服務(wù)器默認(rèn)的 Servlet處理,如果不是靜態(tài)資源的請(qǐng)求,才由DispatcherServlet繼續(xù)處理。
一般Web應(yīng)用服務(wù)器默認(rèn)的Servlet名稱是"default",因此DefaultServletHttpRequestHandler可以 找到它。如果你所有的Web應(yīng)用服務(wù)器的默認(rèn)Servlet名稱不是"default",則需要通過(guò)default-servlet-name屬性顯示指 定:
<mvc:default-servlet-handler default-servlet-name="所使用的Web服務(wù)器默認(rèn)使用的Servlet名稱" />
Tomcat, Jetty, JBoss, and GlassFish默認(rèn)名稱為default, eg: web.xml中
 
  1. <servlet-mapping>   
  2.   <servlet-name>default</servlet-name>  
  3.   <url-pattern>*.jpg</url-pattern>    
  4. </servlet-mapping>   
  5. <servlet-mapping>     
  6.   <servlet-name>default</servlet-name>   
  7.   <url-pattern>*.js</url-pattern>   
  8. </servlet-mapping>   
  9. <servlet-mapping>     
  10.   <servlet-name>default</servlet-name>     
  11.   <url-pattern>*.css</url-pattern>    
  12. </servlet-mapping>  
 
 
如果不配置springdefault-servlet-name 默認(rèn)會(huì)設(shè)置,已經(jīng)支持常用的web服務(wù)器
-->
<mvc:default-servlet-handler />
 
<!-- 允許靜態(tài)資源放在任何地方 ,處理類org.springframework.web.servlet.resource.ResourceHttpRequestHandler
<bean id="resourceHttpRequestHandler" class="org.springframework.web.servlet.resource.ResourceHttpRequestHandler">
  <property name="locations" value="classpath:/META-INF/resources/"></property> 
</bean>
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
  <property name="mappings">
    <props>
      <prop key="/resources/**">resourceHttpRequestHandler</prop>
    </props>
  </property>
</bean>
下面標(biāo)簽實(shí)現(xiàn)
-->
<mvc:resources mapping="/resources/**" location="/resources/"></mvc:resources>
<!-- 
register "global" interceptor beans to apply to all registered HandlerMappings .
Each inteceptor must implement the org.springframework.web.servlet.HandlerInterceptor or
org.springframework.web.context.request.WebRequestInterceptor interface
-->
<mvc:interceptors>
  <mvc:interceptor>
    <mvc:mapping path="/**" />
    <mvc:exclude-mapping path="/css/**" />
    <mvc:exclude-mapping path="/js/**" />
    <mvc:exclude-mapping path="/images/**" />
    <bean class="com.fpx.common.auth.mgt.framework.interceptor.ContextInterceptor" />
  </mvc:interceptor>
</mvc:interceptors>
 
 
<!-- Turns on support for mapping requests to Spring MVC @Controller methods
Also registers default Formatters and Validators for use across all @Controllers
配置解析類:org.springframework.web.servlet.config.AnnotationDrivenBeanDefinitionParser
配置content-negotiation-anager可以在url里設(shè)置內(nèi)容類型參數(shù),可以設(shè)置默認(rèn)內(nèi)容類型
<bean id="contentNegotiationManagerFactoryBean" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean"
p:favorPathExtension="false" p:favorParameter="true" p:parameterName="format" p:ignoreAcceptHeader="true"
p:defaultContentType="application/json">
  <property name="mediaTypes">
  <props>
  <prop key="json">application/json</prop>
  <prop key="xml">application/xml</prop>
   </props>
  </property>
</bean>
-->
<mvc:annotation-driven content-negotiation-anager="contentNegotiationManagerFactoryBean">
  <mvc:message-converters>
    <ref bean="stringHttpMessageConverter" />
    <ref bean="jsonHttpMessageConverter" />
    <ref bean="marshallingHttpMessageConverter" />
  </mvc:message-converters>
</mvc:annotation-driven>
 
<!-- 內(nèi)容管理工廠 -->
     <bean
        class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean"
        p:favorPathExtension="false" p:favorParameter="true"
        p:parameterName="format" p:ignoreAcceptHeader="true"
        p:defaultContentType="application/json">
        <property name="mediaTypes">
          <props>
            <prop key="json">application/json</prop>
            <prop key="xml">application/xml</prop>
          </props>
        </property>
      </bean>
 
 
<!-- 內(nèi)容解析器 ,可以p:parameterName="format"來(lái)配置返回參數(shù)類型 ,通過(guò)p:defaultContentType配置默認(rèn)請(qǐng)求內(nèi)容類型,
c:qualityValue="0.5" 可以設(shè)置內(nèi)容類型的優(yōu)先級(jí), 如果使用了mvc:annotation-driven 和注解方式(@RequestBody), 下面配置是不生效的-->
 
  <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
     <property name="contentNegotiationManager"  ref= "contentNegotiationManagerFactoryBean">
        
     </property>
     <property name="defaultViews">
        <list>
          <bean
             class="org.springframework.web.servlet.view.json.MappingJackson2JsonView">
             <property name="modelKey" value="resultVo" />
             <property name="extractValueFromSingleKeyModel" value="true" />
          </bean>
          <bean class="org.springframework.web.servlet.view.xml.MarshallingView">
             <constructor-arg ref="jaxb2Marshaller" />
             <property name="contentType" value="application/xml" />
          </bean>
        </list>
     </property>
     <!-- <property name="ignoreAcceptHeader" value="true" /> -->
   </bean>
 
 
   <!-- XML view using a JAXB marshaller -->
   <bean id="jaxb2Marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
     <property name="marshallerProperties">
        <map>
          <entry key="jaxb.formatted.output">
             <value type="boolean">true</value>
          </entry>
          <entry key="jaxb.encoding" value="UTF-8" />
        </map>
     </property>
     <property name="packagesToScan">
        <list>
          <value>com.api.domain</value>
          <value>com.api.web.controller.vo</value>
        </list>
     </property>
   </bean>
 
   <bean id="jstlViewResolver"
     class="org.springframework.web.servlet.view.InternalResourceViewResolver">
     <property name="order" value="2" />
     <property name="viewClass"
        value="org.springframework.web.servlet.view.JstlView" />
     <property name="prefix" value="/views/" />
     <property name="suffix" value="" />
     <property name="requestContextAttribute" value="rc" />
   </bean>
 
<!-- c:qualityValue="0.5" 可以設(shè)置內(nèi)容類型的優(yōu)先級(jí),默認(rèn)是1.0,越大優(yōu)先級(jí)越高 -->
   <bean id="stringHttpMessageConverter"
     class="org.springframework.http.converter.StringHttpMessageConverter">
     <property name="supportedMediaTypes">
        <list>
          <value>text/plain;charset=UTF-8</value>
          <value>text/html;charset=UTF-8</value>
        </list>
     </property>
   </bean>
 
   <bean id="jsonHttpMessageConverter"
     class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" />
   <bean id="marshallingHttpMessageConverter"
     class="org.springframework.http.converter.xml.MarshallingHttpMessageConverter">
     <constructor-arg ref="jaxb2Marshaller" />
     <!-- <property name="supportedMediaTypes" value="application/xml"></property> -->
     <property name="supportedMediaTypes">
        <util:list>
          <bean class="org.springframework.http.MediaType" c:type="application" c:subtype="xml" c:qualityValue="0.5"/>
        </util:list>
     </property>
   </bean>

SpringMVC返回json配置步驟如下:

1、添加jackson.jar包

2、在applicationContext.xml配制文件中添加如下代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!--解析返回JSON -->
<!-- <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> -->
  <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
 <property name="messageConverters">
  <list >
  <ref bean="mappingJacksonHttpMessageConverter" />
  </list>
 </property>
 </bean>
 <bean id="mappingJacksonHttpMessageConverter"
 class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
 <property name="supportedMediaTypes">
  <list>
  <value>text/html;charset=UTF-8</value>
  </list>
 </property>
 </bean>

3、在controller中添加如下代碼

?
1
2
3
4
5
6
@RequestMapping(value="/chinese/listTree", method = RequestMethod.POST)
@ResponseBody
 public List getlistChinese(Model model){
 List<User> list = (List<ChineseCategory>) commonMgr.find("from User");
  return list;
 }

返回值可以為list也可以為Map類型

總結(jié)

以上就是本文關(guān)于Spring常用配置及解析類說(shuō)明的全部?jī)?nèi)容,希望對(duì)大家有所幫助。如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!

原文鏈接:http://blog.csdn.net/strivezxq/article/details/45457067

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 3黑人巨大vs北岛玲 3d肉浦团在线观看 3d动漫免费 | 99精品视频在线观看re | 69av导航 | 毛片免费在线视频 | 日韩精品特黄毛片免费看 | 欧美日韩一区二区三在线 | chinesegay黑袜玩奴 | 美女扒开胸罩露出胸大乳 | 国产精品久久久久不卡绿巨人 | 好大好湿好硬好爽好深免费视频 | 99久久国产综合精麻豆 | 加勒比久草 | 日本中文字幕不卡在线一区二区 | 日本妻子迷妹网 | 蜜柚精彩在线观看 | 成年性午夜免费视频网站不卡 | 国产成人99精品免费观看 | 久久婷婷五月免费综合色啪 | free chinese 国产精品 | 九九免费精品视频 | 国产成人一区二区三区视频免费蜜 | 国产一二三区视频 | 欧美一区二区三区成人看不卡 | 日本免费观看95视频网站 | 久久九九久精品国产尤物 | 52av我爱avhaose01| 日本成年片高清在线观看 | 女教师被女同学调教成脚奴 | 美女全身体光羞羞漫画 | 热九九精品 | 亚州一区二区 | 美女被视频网站看免费入口 | 精品亚洲一区二区三区在线播放 | 男人都懂www深夜免费网站 | 免费视频亚洲 | 日韩毛片基地一区二区三区 | 日本孕妇大胆孕交 | 大杳蕉在线影院在线播放 | 99re在线视频观看 | 久久这里只有精品视频9 | 精品久久久久国产免费 |