spring-mvc.xml 7.1 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:mvc="http://www.springframework.org/schema/mvc"
  5. xmlns:context="http://www.springframework.org/schema/context"
  6. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
  7. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
  8. http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
  9. <context:component-scan base-package="com.rtrh.core.plugins.**.controller">
  10. <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
  11. </context:component-scan>
  12. <context:component-scan base-package="com.rtrh.core.security">
  13. <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
  14. </context:component-scan>
  15. <context:component-scan base-package="com.rtrh.projects.web" />
  16. <context:component-scan base-package="com.rtrh.projects.outapi" />
  17. <mvc:annotation-driven conversion-service="conversionService">
  18. <mvc:message-converters register-defaults="true">
  19. <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
  20. <property name="supportedMediaTypes">
  21. <list>
  22. <value>application/json;charset=UTF-8</value>
  23. </list>
  24. </property>
  25. </bean>
  26. <bean class="org.springframework.http.converter.StringHttpMessageConverter">
  27. <property name="supportedMediaTypes" value="text/html;charset=UTF-8"/>
  28. </bean>
  29. </mvc:message-converters>
  30. </mvc:annotation-driven>
  31. <!-- 1,注册ConversionService -->
  32. <bean id="conversionService"
  33. class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
  34. <property name="converters">
  35. <list>
  36. <bean class="com.rtrh.core.conver.StringtoLongConverter" />
  37. <bean class="com.rtrh.core.conver.StringtoDateConver" />
  38. <bean class="com.rtrh.core.conver.StringtoIntConverter" />
  39. <!-- <bean class="com.rtrh.core.conver.StringtoBaseEntityConver" /> -->
  40. </list>
  41. </property>
  42. </bean>
  43. <mvc:default-servlet-handler />
  44. <mvc:interceptors>
  45. <mvc:interceptor>
  46. <mvc:mapping path="/**" />
  47. <mvc:exclude-mapping path="/html/**" />
  48. <mvc:exclude-mapping path="/**/*.html" />
  49. <mvc:exclude-mapping path="/asset/**" />
  50. <mvc:exclude-mapping path="/common/**" />
  51. <mvc:exclude-mapping path="/demo/**" />
  52. <mvc:exclude-mapping path="/errorpage/**" />
  53. <mvc:exclude-mapping path="/login" />
  54. <mvc:exclude-mapping path="/register" />
  55. <mvc:exclude-mapping path="/security/authentication/**" />
  56. <mvc:exclude-mapping path="/static/file/**" />
  57. <bean class="com.rtrh.projects.web.security.URLIntercepter" />
  58. </mvc:interceptor>
  59. <mvc:interceptor>
  60. <mvc:mapping path="/asset/**" />
  61. <bean class="com.rtrh.projects.web.security.OriginAllowIntercepter" />
  62. </mvc:interceptor>
  63. <mvc:interceptor>
  64. <mvc:mapping path="/**" />
  65. <mvc:exclude-mapping path="/html/**" />
  66. <mvc:exclude-mapping path="/**/*.html" />
  67. <mvc:exclude-mapping path="/asset/**" />
  68. <mvc:exclude-mapping path="/common/**" />
  69. <mvc:exclude-mapping path="/demo/**" />
  70. <mvc:exclude-mapping path="/errorpage/**" />
  71. <mvc:exclude-mapping path="/login" />
  72. <mvc:exclude-mapping path="/subject/subInfo/download" />
  73. <mvc:exclude-mapping path="/register" />
  74. <mvc:exclude-mapping path="/VCodeHandler" />
  75. <mvc:exclude-mapping path="/security/authentication/**" />
  76. <bean class="com.rtrh.core.spring.intercepter.MVCRequestInterceptor" />
  77. </mvc:interceptor>
  78. <mvc:interceptor>
  79. <mvc:mapping path="/outApi/**"/>
  80. <bean class="com.rtrh.projects.outapi.base.ApiTokenAuthInterceptor" />
  81. </mvc:interceptor>
  82. </mvc:interceptors>
  83. <bean id="contentNegotiationManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
  84. <property name="favorPathExtension" value="true"/>
  85. <property name= "ignoreAcceptHeader" value= "true"/>
  86. <property name= "favorParameter" value= "true" />
  87. <property name= "parameterName" value= "format"/>
  88. <property name="mediaTypes" >
  89. <value>
  90. json=application/json
  91. xml=application/xml
  92. html=text/html
  93. </value>
  94. </property>
  95. <property name= "defaultContentType" value= "text/html" />
  96. </bean>
  97. <bean class= "org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
  98. <property name="order" value="0"/>
  99. <property name= "contentNegotiationManager" ref= "contentNegotiationManager"/>
  100. <property name="viewResolvers">
  101. <list>
  102. <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  103. <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
  104. <property name="contentType" value="text/html; charset=UTF-8"/>
  105. </bean>
  106. </list>
  107. </property>
  108. <property name= "defaultViews">
  109. <list>
  110. <bean class="org.springframework.web.servlet.view.json.MappingJackson2JsonView" />
  111. </list>
  112. </property>
  113. </bean>
  114. <!-- 上传文件 -->
  115. <bean id="multipartResolver"
  116. class="com.rtrh.projects.web.base.CommonsMultipartResolverFactory" />
  117. <!-- 统一异常处理 -->
  118. <bean id="handlerExceptionResolver" class="com.rtrh.projects.web.base.MyHandlerMethodExceptionResolver">
  119. <property name="defaultErrorView" value="error/500"/> <!--错误页面-->
  120. <property name="messageConverters">
  121. <list>
  122. <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter" />
  123. <!-- JSON转换器无需设置mediaType,由外部客户端调用时,手动设置相关mediaType -->
  124. <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
  125. <property name="objectMapper">
  126. <bean class="com.fasterxml.jackson.databind.ObjectMapper">
  127. <property name="dateFormat">
  128. <bean class="java.text.SimpleDateFormat">
  129. <constructor-arg type="java.lang.String" value="yyyy-MM-dd HH:mm:ss" />
  130. </bean>
  131. </property>
  132. </bean>
  133. </property>
  134. </bean>
  135. </list>
  136. </property>
  137. </bean>
  138. <!-- <bean id="handlerAdapter" class="org.springframework.web.servlet.mvc.annotation.RestHandlerAdapter"></bean> -->
  139. <!-- 保证实现了Shiro内部lifecycle函数的bean执行 -->
  140. <bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor"/>
  141. <!-- AOP式方法级权限检查 -->
  142. <bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" depends-on="lifecycleBeanPostProcessor">
  143. <property name="proxyTargetClass" value="true" />
  144. </bean>
  145. <bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor">
  146. <property name="securityManager" ref="securityManager"/>
  147. </bean>
  148. </beans>