汇总SpringMVC
配置文件springmvc.xml
相关配置。
基本配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
| <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd 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-4.0.xsd">
<context:component-scan base-package="com.xxx.controller,com.yyy.controller" /> <context:property-placeholder location="classpath:resources.properties"/>
<mvc:annotation-driven> <mvc:message-converters register-defaults="true"> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/plain;charset=UTF-8</value> <value>text/html;charset=UTF-8</value> </list> </property> </bean> </mvc:message-converters> </mvc:annotation-driven>
<mvc:default-servlet-handler /> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"></property> <property name="suffix" value=".jsp"></property> </bean> <mvc:view-controller path="/" view-name="redirect:/admin/index" /> <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/admin/**" /> <bean class="com.interceptor.LoginInterceptor"></bean> </mvc:interceptor> </mvc:interceptors>
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize" value="20971520"></property> <property name="defaultEncoding" value="utf-8"></property> </bean> </beans>
|
增强配置
重定向
- 如果当前路径是
/
则重定向到/admin/index
1
| <mvc:view-controller path="/" view-name="redirect:/admin/index"/>
|
- 如果当前路径是
/
则交给相应的视图解析器直接解析为视图
请求:/
,返回视图 /WEB-INF/jsp/admin/index.jsp
1
| <mvc:view-controller path="/" view-name=admin/index"/>
|
静态资源
放行静态资源文件,或访问jsp
不进Controller
。
- 第一种方案:放行静态资源文件
在springmvc.xml
添加默认的servlet
处理器注解,将静态资源的请求交给Web
服务器默认的servlet处理。1 2
| <mvc:default-servlet-handler />
|
- 第二种方案:将映射路径指指定到需要放行的文件路径
此方案可将资源文件放在项目任意位置,如:放在WEB-INF
目录,可将资源文件打入jar
包;
因location
属性是 Resources
类型,也可使用classpath:
等的资源前缀指定资源位置。1 2 3 4 5 6
|
<mvc:resources mapping="/static/**" location="/static/" cache-period="31556926"/>
|
- 第三种方案:在
web.xml
配置默认的servlet-mapping
,放行指定目录和文件类型。
在web.xml
配置默认的servlet-mapping
,设置放行的资源类型或目录。
此方案处理的静态文件方式不能访问WEB-INF
下的文件,静态文件不能放在该目录下。一般放在webapp
下面,WEB-INF
外面。1 2 3 4 5 6 7 8 9
| <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.jpg</url-pattern> <url-pattern>*.png</url-pattern> <url-pattern>*.js</url-pattern> <url-pattern>*.css</url-pattern> .... </servlet-mapping>
|
xml读取propterties文件参数
- Maven工程在
src/main/resources
下创建资源文件resources.properties
;写入key=value
类型数据。
- 在
xml
配置加载xxx.properties资源文件。
- <context:property-placeholder location=”classpath:xxx.properties”/>
Spring有个<context:property-placeholder location="classpath:xxx.properties"/>
标签,用来加载 properties
配置文件,location
是配置文件的路径。
- 使用
EL
表达式根据key获取xxx.properties文件中对应的值。1 2 3 4 5 6 7 8 9 10
| mapping_path=static local_path=static
<context:property-placeholder location="classpath:resources.properties"/>
<mvc:resources mapping="/${mapping_path}/**" location="/${local_path}/" cache-period="31556926"/>
|
应用配置
在springmvc.xml
文件的beans
标签里添加bean
。
shiro配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| <bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor"/> <bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" depends-on="lifecycleBeanPostProcessor" />
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <property name="exceptionMappings"> <props> <prop key="org.apache.shiro.authz.UnauthenticatedException">redirect:/admin/login</prop> <prop key="org.apache.shiro.authz.UnauthorizedException">404</prop> </props> </property> </bean>
|
【参考】
- Spring MVC静态资源处理
- servlet的url-pattern匹配规则详细描述
- Spring加载properties文件的两种方式
- spring配置中,properties文件以及xml文件配置问题