激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Spring常用配置及解析類說明

Spring常用配置及解析類說明

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

這篇文章主要介紹了Spring常用配置及解析類說明,涉及Spring常用配置項的方法以及它的解析類等相關內容,具有一定參考價值,需要的朋友可以了解下。

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

?
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里要用到配置,才需要加載配置,因為一般這個配置由DispatchServlet來加載,和spring監聽類不在一個上下文里,想要知道原因請看
http://blog.csdn.net/strivezxq/article/details/43795081 這篇文章詳細解析了spring初始化過程 -->
 
   <context:property-placeholder location="classpath:app.properties" />
<!--Scans the classpath for annotated components @Component, @Repository, @Service, and @Controller 
通過use-default-filters="false",可以設置只掃描哪些注釋,一般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">已經包含了context:annotation-configr的功能,所以這個配置基本沒必要配置,激活在bean類中被檢測到的各種注釋: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 />
<!--會在Spring MVC上下文中定義一個 org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler, 它會像一個檢查員,對進入DispatcherServlet的URL進行篩查,如果發現是靜態資源的請求,就將該請求轉由Web應用服務器默認的 Servlet處理,如果不是靜態資源的請求,才由DispatcherServlet繼續處理。
一般Web應用服務器默認的Servlet名稱是"default",因此DefaultServletHttpRequestHandler可以 找到它。如果你所有的Web應用服務器的默認Servlet名稱不是"default",則需要通過default-servlet-name屬性顯示指 定:
<mvc:default-servlet-handler default-servlet-name="所使用的Web服務器默認使用的Servlet名稱" />
Tomcat, Jetty, JBoss, and GlassFish默認名稱為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 默認會設置,已經支持常用的web服務器
-->
<mvc:default-servlet-handler />
 
<!-- 允許靜態資源放在任何地方 ,處理類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>
下面標簽實現
-->
<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里設置內容類型參數,可以設置默認內容類型
<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>
 
<!-- 內容管理工廠 -->
     <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>
 
 
<!-- 內容解析器 ,可以p:parameterName="format"來配置返回參數類型 ,通過p:defaultContentType配置默認請求內容類型,
c:qualityValue="0.5" 可以設置內容類型的優先級, 如果使用了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" 可以設置內容類型的優先級,默認是1.0,越大優先級越高 -->
   <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類型

總結

以上就是本文關于Spring常用配置及解析類說明的全部內容,希望對大家有所幫助。如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 97人人草 | 久久久久久久一区二区三区 | 免费久久精品 | 一级大黄毛片免费观看 | 精品国产一区二区三区在线观看 | 天天夜碰日日摸日日澡性色av | 国产精品久久久久久久久久久天堂 | 久草在线观看福利 | 国产精品一区在线观看 | 女人久久久www免费人成看片 | 成人福利在线 | 一级α片免费看刺激高潮视频 | 欧洲精品久久久 | 欧美77| 婷婷久久综合九色综合色多多蜜臀 | 91在线观看| 亚洲成人夜色 | av懂色| 午夜精品久久久久久毛片 | 免费视频精品一区二区 | av免费不卡国产观看 | 国产三级在线视频观看 | 成人免费看毛片 | 成人在线视频播放 | 久久久久久久亚洲视频 | 人人舔人人插 | 成人久久久精品乱码一区二区三区 | 成人在线视频免费观看 | 中国女警察一级毛片视频 | 成人免费在线播放 | 欧美14一15sex性hd | 天堂亚洲一区 | tube7xxx| 久久久久久麻豆 | teensexhd| 精品一区二区三区在线播放 | 亚洲特黄a级毛片在线播放 激情视频免费看 | 欧美自拍| av在线直播观看 | 中国hdxxxx护士爽在线观看 | 国产精品成人一区二区三区吃奶 |