spring-mvc.xml 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:task="http://www.springframework.org/schema/task" xmlns:mvc="http://www.springframework.org/schema/mvc"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
  5. xmlns:context="http://www.springframework.org/schema/context"
  6. xsi:schemaLocation="http://www.springframework.org/schema/beans
  7. http://www.springframework.org/schema/beans/spring-beans.xsd
  8. http://www.springframework.org/schema/context
  9. http://www.springframework.org/schema/context/spring-context-4.0.xsd
  10. http://www.springframework.org/schema/task
  11. http://www.springframework.org/schema/task/spring-task-4.0.xsd
  12. http://www.springframework.org/schema/mvc
  13. http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
  14. <!-- Scan controller -->
  15. <context:component-scan
  16. base-package="com.kede.*.controller;com.kede.*.*.controller;com.kede.common.task;com.kede.core.websocket" />
  17. <bean name="springContextUtils" class="com.kede.common.utils.SpringContextUtils" scope="singleton"></bean>
  18. <bean id="passwordUtil" class="com.kede.common.utils.PasswordUtil">
  19. <property name="algorithmName" value="${pwd.hash_algorithm_name}"/>
  20. <property name="hashIterations" value="${pwd.hash_iterations}"/>
  21. </bean>
  22. <!-- spring bean validator -->
  23. <bean id="validator"
  24. class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
  25. <property name="providerClass" value="org.hibernate.validator.HibernateValidator" />
  26. <property name="validationMessageSource" ref="messageSource" />
  27. </bean>
  28. <mvc:annotation-driven validator="validator" />
  29. <bean
  30. class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor">
  31. <property name="securityManager" ref="securityManager" />
  32. </bean>
  33. <bean id="messageSource"
  34. class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
  35. <property name="defaultEncoding" value="UTF-8"></property>
  36. <property name="basenames">
  37. <list>
  38. <value>classpath:props/error</value>
  39. </list>
  40. </property>
  41. </bean>
  42. <!-- Handles HTTP GET requests for /assets/** by efficiently serving up
  43. static resources in the ${webappRoot}/assets directory -->
  44. <mvc:resources mapping="/static/images/**" location="/WEB-INF/images/" />
  45. <mvc:resources mapping="/static/html/**" location="/WEB-INF/html/" />
  46. <mvc:resources mapping="/static/**" location="/WEB-INF/build/" />
  47. <mvc:resources mapping="/favicon.ico" location="/WEB-INF/assets/favicon.ico" />
  48. <mvc:resources mapping="/robots.txt" location="/WEB-INF/assets/robots.txt" />
  49. <bean id="templateResolver"
  50. class="org.thymeleaf.spring4.templateresolver.SpringResourceTemplateResolver">
  51. <property name="prefix" value="/WEB-INF/views/" />
  52. <property name="suffix" value=".html" />
  53. <property name="templateMode" value="HTML" />
  54. <property name="characterEncoding" value="UTF-8"/>
  55. <!-- Template cache is set to false (default is true). -->
  56. <property name="cacheable" value="${template.cacheable}" />
  57. </bean>
  58. <bean id="templateEngine" class="org.thymeleaf.spring4.SpringTemplateEngine">
  59. <property name="templateResolver" ref="templateResolver" />
  60. </bean>
  61. <!-- Simple strategy: only path extension is taken into account -->
  62. <bean id="cnManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
  63. <property name="favorPathExtension" value="true"/>
  64. <property name="ignoreAcceptHeader" value="true"/>
  65. <property name="defaultContentType" value="text/html"/>
  66. <property name="mediaTypes">
  67. <map>
  68. <entry key="html" value="text/html" />
  69. <entry key="xml" value="application/xml" />
  70. <entry key="atom" value="application/atom+xml" />
  71. </map>
  72. </property>
  73. </bean>
  74. <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
  75. <property name="contentNegotiationManager" ref="cnManager"/>
  76. <property name="viewResolvers">
  77. <list>
  78. <!-- Used here for 'xml' and 'atom' views -->
  79. <bean class="org.springframework.web.servlet.view.BeanNameViewResolver">
  80. <property name="order" value="1"/>
  81. </bean>
  82. <!-- thymeleaf -->
  83. <bean class="org.thymeleaf.spring4.view.ThymeleafViewResolver">
  84. <property name="templateEngine" ref="templateEngine" />
  85. <property name="characterEncoding" value="UTF-8"/>
  86. <property name="order" value="2"/>
  87. <property name="excludedViewNames" value="*.xml" />
  88. </bean>
  89. </list>
  90. </property>
  91. </bean>
  92. <bean id="multipartResolver"
  93. class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
  94. <property name="defaultEncoding" value="UTF-8" />
  95. <property name="maxUploadSize" value="52428800" />
  96. </bean>
  97. <bean
  98. class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">
  99. </bean>
  100. <bean
  101. class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
  102. <property name="messageConverters">
  103. <list>
  104. <bean
  105. class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" />
  106. </list>
  107. </property>
  108. </bean>
  109. <bean id="exceptionResolver" class="com.kede.common.error.SystemExceptionResolver">
  110. <property name="exceptionMappings">
  111. <props>
  112. <prop key="org.apache.shiro.authc.UnknownAccountException">login</prop>
  113. <prop key="org.apache.shiro.authc.LockedAccountException">login</prop>
  114. <prop key="org.apache.shiro.authc.ExcessiveAttemptsException">login</prop>
  115. <prop key="org.apache.shiro.authc.IncorrectCredentialsException">login</prop>
  116. <prop key="org.apache.shiro.session.ExpiredSessionException">login</prop>
  117. <prop key="java.lang.Exception">error</prop>
  118. </props>
  119. </property>
  120. </bean>
  121. <bean id="shiroFilterUtils" class="com.kede.core.shiro.filter.ShiroFilterUtils" scope="singleton">
  122. <property name="appName" value="${app.name}" />
  123. </bean>
  124. <bean id="systemWebSocketHandler" class="com.kede.core.websocket.SystemWebSocketHandler" scope="singleton"></bean>
  125. </beans>