spring-mvc.xml 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xmlns:context="http://www.springframework.org/schema/context"
  4. xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:util="http://www.springframework.org/schema/util"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
  6. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
  7. http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
  8. <description>Spring MVC Configuration</description>
  9. <!-- 加载配置属性文件 -->
  10. <context:property-placeholder ignore-unresolvable="true" location="classpath:jeeplus.properties" />
  11. <!-- 使用Annotation自动注册Bean,只扫描@Controller -->
  12. <context:component-scan base-package="com.jeeplus" use-default-filters="false"><!-- base-package 如果多个,用“,”分隔 -->
  13. <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
  14. </context:component-scan>
  15. <!-- 默认的注解映射的支持,org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping -->
  16. <mvc:annotation-driven content-negotiation-manager="contentNegotiationManager">
  17. <mvc:message-converters register-defaults="true">
  18. <!-- 将StringHttpMessageConverter的默认编码设为UTF-8 -->
  19. <bean class="org.springframework.http.converter.StringHttpMessageConverter">
  20. <constructor-arg value="UTF-8" />
  21. </bean>
  22. <!-- 将Jackson2HttpMessageConverter的默认格式化输出为false -->
  23. <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
  24. <property name="supportedMediaTypes">
  25. <list><value>application/json;charset=UTF-8</value></list>
  26. </property>
  27. <property name="prettyPrint" value="false"/>
  28. <property name="objectMapper">
  29. <bean class="com.jeeplus.common.mapper.JsonMapper">
  30. <!-- 处理responseBody 里面日期类型 -->
  31. <property name="dateFormat">
  32. <bean class="java.text.SimpleDateFormat">
  33. <constructor-arg type="java.lang.String" value="yyyy-MM-dd HH:mm:ss" />
  34. </bean>
  35. </property>
  36. <!-- 时区指定 -->
  37. <property name="timeZone" value="GMT+8" />
  38. </bean>
  39. </property>
  40. </bean>
  41. <!-- 使用XML格式输出数据 -->
  42. <bean class="org.springframework.http.converter.xml.MarshallingHttpMessageConverter">
  43. <constructor-arg>
  44. <bean class="org.springframework.oxm.xstream.XStreamMarshaller">
  45. <property name="streamDriver">
  46. <bean class="com.thoughtworks.xstream.io.xml.StaxDriver"/>
  47. </property>
  48. <property name="annotatedClasses">
  49. <list>
  50. <value>com.jeeplus.common.persistence.BaseEntity</value>
  51. </list>
  52. </property>
  53. </bean>
  54. </constructor-arg>
  55. <property name="supportedMediaTypes" value="application/xml"></property>
  56. </bean>
  57. </mvc:message-converters>
  58. </mvc:annotation-driven>
  59. <!-- REST中根据URL后缀自动判定Content-Type及相应的View -->
  60. <bean id="contentNegotiationManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
  61. <property name="mediaTypes" >
  62. <map>
  63. <entry key="xml" value="application/xml"/>
  64. <entry key="json" value="application/json"/>
  65. </map>
  66. </property>
  67. <property name="ignoreAcceptHeader" value="true"/>
  68. <property name="favorPathExtension" value="true"/>
  69. </bean>
  70. <!-- 定义视图文件解析 -->
  71. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  72. <property name="prefix" value="${web.view.prefix}"/>
  73. <property name="suffix" value="${web.view.suffix}"/>
  74. </bean>
  75. <!-- 对静态资源文件的访问, 将无法mapping到Controller的path交给default servlet handler处理 -->
  76. <mvc:default-servlet-handler />
  77. <!-- 静态资源映射 -->
  78. <mvc:resources mapping="/static/**" location="/static/" cache-period="31536000"/>
  79. <!-- 定义无Controller的path<->view直接映射 -->
  80. <mvc:view-controller path="/" view-name="redirect:${web.view.index}"/>
  81. <!-- 拦截器配置,拦截顺序:先执行后定义的,排在第一位的最后执行。-->
  82. <mvc:interceptors>
  83. <mvc:interceptor>
  84. <mvc:mapping path="${adminPath}/**" />
  85. <mvc:exclude-mapping path="${adminPath}/"/>
  86. <mvc:exclude-mapping path="${adminPath}/login"/>
  87. <mvc:exclude-mapping path="${adminPath}/sys/menu/tree"/>
  88. <mvc:exclude-mapping path="${adminPath}/sys/menu/treeData"/>
  89. <mvc:exclude-mapping path="${adminPath}/oa/oaNotify/self/count"/>
  90. <bean class="com.jeeplus.modules.sys.interceptor.LogInterceptor" />
  91. </mvc:interceptor>
  92. <!-- 手机视图拦截器 -->
  93. <mvc:interceptor>
  94. <mvc:mapping path="/**" />
  95. <bean class="com.jeeplus.modules.sys.interceptor.MobileInterceptor" />
  96. </mvc:interceptor>
  97. <!-- 跨域问题拦截器 -->
  98. <mvc:interceptor>
  99. <mvc:mapping path="/**" />
  100. <bean class="com.jeeplus.modules.sys.interceptor.CORSInterceptor" />
  101. </mvc:interceptor>
  102. <!--<mvc:interceptor>-->
  103. <!--&lt;!&ndash; 对所有的请求拦截使用/** ,对某个模块下的请求拦截使用:/myPath/*&ndash;&gt;-->
  104. <!--<mvc:mapping path="${adminPath}/message/messageController/**" />-->
  105. <!--<ref bean="oauth2Interceptor" />-->
  106. <!--</mvc:interceptor>-->
  107. </mvc:interceptors>
  108. <!-- 支持Shiro对Controller的方法级AOP安全控制 begin-->
  109. <bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" depends-on="lifecycleBeanPostProcessor">
  110. <property name="proxyTargetClass" value="true" />
  111. </bean>
  112. <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
  113. <property name="exceptionMappings">
  114. <props>
  115. <prop key="org.apache.shiro.authz.UnauthorizedException">error/403</prop>
  116. <prop key="java.lang.Throwable">error/500</prop>
  117. </props>
  118. </property>
  119. </bean>
  120. <!-- 支持Shiro对Controller的方法级AOP安全控制 end -->
  121. <!-- 上传文件拦截,设置最大上传文件大小 10M=10*1024*1024(B)=10485760 bytes -->
  122. <bean id="multipartResolver" class="com.jeeplus.common.filter.JeeplusMultipartResolver">
  123. <property name="excludeUrls">
  124. <list>
  125. <value>iSignatureDocument</value>
  126. </list>
  127. </property>
  128. <property name="maxUploadSize" value="${web.maxUploadSize}" />
  129. </bean>
  130. </beans>