spring-mvc.xml 5.7 KB
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:p="http://www.springframework.org/schema/p"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/mvc 
       http://www.springframework.org/schema/mvc/spring-mvc.xsd
       http://www.springframework.org/schema/aop 
       http://www.springframework.org/schema/aop/spring-aop.xsd">
       
       <!-- 自动扫描且只扫描@Controller -->
       <context:component-scan base-package="com.eport" use-default-filters="false">
			<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
			<context:include-filter type="annotation" expression="org.springframework.stereotype.Component"/>
			<context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/>
	   </context:component-scan>  
	   <!-- 使用Aop -->
	<aop:aspectj-autoproxy proxy-target-class="true" />
	
	   <mvc:annotation-driven content-negotiation-manager="contentNegotiationManager">
			<mvc:message-converters register-defaults="true">
				<!-- 将StringHttpMessageConverter的默认编码设为UTF-8 -->
				<bean class="org.springframework.http.converter.StringHttpMessageConverter">
			    	<constructor-arg value="UTF-8" />
				</bean>
				<!-- 将Jackson2HttpMessageConverter的默认格式化输出设为true -->
				<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
	                <property name="prettyPrint" value="true"/>
	                <property name="objectMapper">
		                <bean class="com.fasterxml.jackson.databind.ObjectMapper">
		                <property name="serializationInclusion">
				            <value type="com.fasterxml.jackson.annotation.JsonInclude.Include">NON_NULL</value>
				        </property>
		                    <property name="dateFormat">
		                        <bean class="java.text.SimpleDateFormat">
		                            <constructor-arg type="java.lang.String" value="yyyy-MM-dd HH:mm:ss"/>
		                        </bean>
		                    </property>
		                </bean>
            	    </property> 
	            </bean>
	  		</mvc:message-converters>
	  </mvc:annotation-driven>
	  
	  <!-- REST中根据URL后缀自动判定Content-Type及相应的View -->
	  <bean id="contentNegotiationManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
		    <property name="ignoreAcceptHeader" value="true" />
		    <property name="favorPathExtension" value="true" />
	        <property name="defaultContentType" value="application/json" />
		    <property name="mediaTypes" >
		        <value>
		            json=application/json
		            xml=application/xml
		        </value>
		    </property>
	  </bean>
	  
	  <bean class="com.eport.utils.SpringTool"/>
	  <!-- tiles开始 
	<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
    <property name="definitions">
        <list>
            <value>/WEB-INF/tiles/tiles.xml</value>
        </list>
    </property>
</bean>
<bean id="viewResolver" class="org.springframework.web.servlet.view.tiles3.TilesViewResolver">
    <property name="order" value="1" />
    <property name="viewClass" value="org.springframework.web.servlet.view.tiles3.TilesView"></property>
</bean>
<bean
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/views/" />
    <property name="suffix" value=".jsp" />
    <property name="order" value="2" />
</bean>-->
<!-- tiles结束 -->
	  
	  <!-- 定义JSP文件的位置 -->  
	  <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
			<property name="prefix" value="/WEB-INF/views/"/>
			<property name="suffix" value=".jsp"/>
	  </bean>
	  
	  <!-- 容器默认的DefaultServletHandler处理 所有静态内容与无RequestMapping处理的URL-->
	  <mvc:default-servlet-handler/>
	  
	  <!-- 将Controller抛出的异常转到特定View, 保持SiteMesh的装饰效果
	  <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">  
			<property name="exceptionMappings">  
				<props>
					<prop key="org.apache.shiro.authz.UnauthorizedException">error/403</prop>
					<prop key="java.lang.Throwable">error/500</prop>
	            </props>  
			</property>  
      </bean>  -->
      
	  <!-- 访问静态资源 -->
	  <mvc:resources mapping="/resource/**" location="/resource/" cache-period="2592000"/>

	  <!-- spring MVC 文件上传 配置 -->
	  <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" p:defaultEncoding="UTF-8">
		     <property name="maxUploadSize"><value>104857600</value></property>
		     <property name="maxInMemorySize"><value>4096</value></property>
	  </bean>
	  
	  
	   <!-- 支持 Shiro对Controller的方法级AOP安全控制  begin-->
	  <bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" depends-on="lifecycleBeanPostProcessor">
			<property name="proxyTargetClass" value="true" />
	  </bean>
	  
	  <bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor">
    		<property name="securityManager" ref="securityManager"/>
	  </bean>

</beans>