spring-mvc.xml 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:mvc="http://www.springframework.org/schema/mvc"
  6. xmlns:task="http://www.springframework.org/schema/task"
  7. xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd
  8. http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
  9. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd
  10. http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.1.xsd">
  11. <!-- ①:对web包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能 -->
  12. <context:component-scan base-package="cn.ourwill" use-default-filters="false">
  13. <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
  14. <context:include-filter type="annotation" expression="org.springframework.stereotype.Repository"/>
  15. <context:include-filter type="annotation" expression="org.springframework.stereotype.Service"/>
  16. <context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/>
  17. </context:component-scan>
  18. <task:annotation-driven />
  19. <context:annotation-config />
  20. <mvc:annotation-driven content-negotiation-manager="contentNegotiationManager">
  21. <mvc:message-converters register-defaults="true">
  22. <!-- 将StringHttpMessageConverter的默认编码设为UTF-8 -->
  23. <bean class="org.springframework.http.converter.StringHttpMessageConverter">
  24. <constructor-arg value="UTF-8" />
  25. </bean>
  26. <!-- 将Jackson2HttpMessageConverter的默认格式化输出设为true -->
  27. <!-- <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
  28. <property name="prettyPrint" value="true"/>
  29. <property name="supportedMediaTypes">
  30. <list>
  31. <value>application/json;charset=UTF-8</value>
  32. </list>
  33. </property>
  34. </bean> -->
  35. <bean class="cn.ourwill.core.common.utils.GsonHttpMessageConverter"></bean>
  36. </mvc:message-converters>
  37. </mvc:annotation-driven>
  38. <mvc:default-servlet-handler />
  39. <mvc:resources mapping="/import/**" location="/login/"/>
  40. <mvc:resources location="/crossdomain.xml" mapping="/crossdomain.xml"/>
  41. <mvc:interceptors>
  42. <!-- 使用bean定义一个Interceptor,直接定义在mvc:interceptors根下面的Interceptor将拦截所有的请求 -->
  43. <!--<bean class="com.host.app.web.interceptor.AllInterceptor"/>-->
  44. <mvc:interceptor>
  45. <mvc:mapping path="/**/*"/>
  46. <bean class="cn.ourwill.module.sys.controller.LogUserFilter"/>
  47. </mvc:interceptor>
  48. <mvc:interceptor>
  49. <mvc:mapping path="/**/*"/>
  50. <bean class="cn.ourwill.module.sys.common.filter.OperateLogIntercept"/>
  51. </mvc:interceptor>
  52. <mvc:interceptor>
  53. <!-- 除了靜態的文件(js,css)等不攔截之外,其他均要攔截. -->
  54. <mvc:mapping path="/sys/role/**"/>
  55. <mvc:mapping path="/check/*"/>
  56. <mvc:mapping path="/code/*"/>
  57. <mvc:mapping path="/daily/*"/>
  58. <mvc:mapping path="/dm/*"/>
  59. <mvc:mapping path="/device/**/*"/>
  60. <mvc:mapping path="/dic/*"/>
  61. <mvc:mapping path="/food/*"/>
  62. <mvc:mapping path="/grain/*"/>
  63. <mvc:mapping path="/house/**/*"/>
  64. <mvc:mapping path="/payment/*"/>
  65. <mvc:mapping path="/quality/*"/>
  66. <mvc:mapping path="/responsible/*"/>
  67. <mvc:mapping path="/safe/*"/>
  68. <mvc:exclude-mapping path="/sys/user/**"/>
  69. <mvc:exclude-mapping path="/sys/login*"/>
  70. <mvc:exclude-mapping path="/import/index*"/>
  71. <!-- <mvc:exclude-mapping path="/main"/> -->
  72. <bean class="cn.ourwill.module.sys.common.filter.LimitAccessIntercept"></bean>
  73. </mvc:interceptor>
  74. <!--<mvc:interceptor>-->
  75. <!--<mvc:mapping path="/*"/>-->
  76. <!--&lt;!&ndash; 定义在mvc:interceptor下面的表示是对特定的请求才进行拦截的 &ndash;&gt;-->
  77. <!---->
  78. <!--</mvc:interceptor>-->
  79. </mvc:interceptors>
  80. <!-- ②:拦截器的配置
  81. <mvc:interceptors>
  82. <mvc:interceptor>
  83. <mvc:mapping path="/**/*"/>
  84. <mvc:exclude-mapping path="/static/**/*"/>
  85. <mvc:exclude-mapping path="/kindeditor/**/*"/>
  86. <bean class="cn.ourwill.core.intercepter.LimitIntercepterForWebsite">
  87. </bean>
  88. </mvc:interceptor>
  89. 针对后台的路径进行拦截
  90. <mvc:interceptor>
  91. <mvc:mapping path="/admin*"/>
  92. <mvc:mapping path="/admin/**/*"/>
  93. <mvc:exclude-mapping path="/*/ajax/**"/>
  94. <mvc:exclude-mapping path="/api/*"/>
  95. <mvc:exclude-mapping path="/api/**/*"/>
  96. <mvc:exclude-mapping path="/admin"/>
  97. <mvc:exclude-mapping path="/admin"/>
  98. <mvc:exclude-mapping path="/admin/sys/login"/>
  99. <mvc:exclude-mapping path="/admin/sys/logout"/>
  100. <bean class="cn.ourwill.core.intercepter.LimitIntercepterForAdmin">
  101. </bean>
  102. </mvc:interceptor>
  103. 访问日志
  104. <mvc:interceptor>
  105. <mvc:mapping path="/**/*"/>
  106. <mvc:exclude-mapping path="/static/**/*"/>
  107. <mvc:exclude-mapping path="/kindeditor/**/*"/>
  108. <bean class="cn.ourwill.core.intercepter.LoggerFilter">
  109. </bean>
  110. </mvc:interceptor>
  111. </mvc:interceptors> -->
  112. <!-- ③:对模型视图名称的解析,即在模型视图名称添加前后缀 -->
  113. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  114. <property name="prefix" value="/WEB-INF/view/"/>
  115. <property name="suffix" value=".jsp"/>
  116. <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
  117. </bean>
  118. <!-- <mvc:view-controller path="/" view-name="redirect:/index"/> -->
  119. <!-- REST中根据URL后缀自动判定Content-Type及相应的View -->
  120. <bean id="contentNegotiationManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
  121. <property name="mediaTypes" >
  122. <value>
  123. json=application/json
  124. xml=application/xml
  125. </value>
  126. </property>
  127. </bean>
  128. <!-- 文件上传限制大小 -->
  129. <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
  130. <!-- set the max upload size 10MB -->
  131. <property name="maxUploadSize">
  132. <value>1048576000</value>
  133. </property>
  134. <property name="maxInMemorySize">
  135. <value>4096</value>
  136. </property>
  137. </bean>
  138. <!-- 将Controller抛出的异常转到特定View, 保持SiteMesh的装饰效果 -->
  139. <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
  140. <property name="exceptionMappings">
  141. <props>
  142. <prop key="org.apache.shiro.authz.UnauthorizedException">/WEB-INF/view/common/error/403</prop>
  143. <prop key="java.lang.Throwable">/common/error</prop>
  144. </props>
  145. </property>
  146. </bean>
  147. <bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  148. <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
  149. <property name="basePackage" value="cn.ourwill"/>
  150. </bean>
  151. </beans>