SpringMVC4零配置--Web上下文配置【MvcConfig】
与SpringSecurity的配置类似,spring同样为我们提供了一个实现类WebMvcConfigurationSupport和一个注解@EnableWebMvc以帮助我们减少bean的声明。
applicationContext-MvcConfig.xml
- <!-- 启用注解,并定义组件查找规则 ,mvc层只负责扫描@Controller -->
- <context:component-scan base-package="web.function"
- use-default-filters="false">
- <context:include-filter type="annotation"
- expression="org.springframework.stereotype.Controller" />
- </context:component-scan>
- <!-- 视图处理器 -->
- <bean id="viewResolver"
- class="org.springframework.web.servlet.view.InternalResourceViewResolver">
- <property name="prefix" value="/WEB-INF/views/jsp/function/" />
- <property name="suffix" value=".jsp" />
- </bean>
- <!-- 定义国际化资源文件查找规则 ,各种messages.properties -->
- <bean id="messageSource"
- class="org.springframework.context.support.ResourceBundleMessageSource"
- p:basename="config.messages.messages">
- </bean>
- <!-- servlet适配器,这里必须明确声明,因为spring默认没有初始化该适配器 -->
- <bean id="servletHandlerAdapter"
- class="org.springframework.web.servlet.handler.SimpleServletHandlerAdapter" />
- <!-- 定义文件上传处理器 -->
- <bean id="multipartResolver"
- class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
- p:defaultEncoding="UTF-8" />
- <!-- 异常处理器 -->
- <bean id="exceptionResolver" class="web.core.CP_SimpleMappingExceptionResolver">
- <property name="defaultErrorView" value="common_error" />
- <property name="exceptionAttribute" value="exception" />
- <property name="exceptionMappings">
- <props>
- <prop key="java.lang.RuntimeException">common_error</prop>
- </props>
- </property>
- </bean>
- <!-- 定义公共参数初始化拦截器 -->
- <bean id="initInterceptor" class="web.core.CP_InitializingInterceptor" />
- <!-- 本地化资源处理器 -->
- <bean id="localeResolver"
- class="org.springframework.web.servlet.i18n.CookieLocaleResolver" />
- <!-- 定义本地化变更拦截器 -->
- <bean id="localeChangeInterceptor"
- class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />
- <!-- 请求拦截器,每一个用户请求都会被拦截 -->
- <mvc:interceptors>
- <ref bean="localeChangeInterceptor" />
- <ref bean="initInterceptor" />
- </mvc:interceptors>
- <!-- 定义注解驱动Controller方法处理适配器 ,注:该适配器必须声明在<mvc:annotation-driven />之前,否则不能正常处理参数类型的转换 -->
- <bean
- class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
- <property name="webBindingInitializer">
- <bean class="web.core.CP_PropertyEditorRegistrar">
- <property name="format" value="yyyy-MM-dd"></property>
- </bean>
- </property>
- <property name="messageConverters">
- <list>
- <bean
- class="org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter" />
- <bean
- class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" />
- </list>
- </property>
- </bean>
- <!-- 会自动注册RequestMappingHandlerMapping与RequestMappingHandlerAdapter
- 两个bean,是spring MVC为@Controllers分发请求所必须的。 并提供了:数据绑定支持,@NumberFormatannotation支持,@DateTimeFormat支持,@Valid支持,读写XML的支持(JAXB),读写JSON的支持(Jackson) -->
- <mvc:annotation-driven />
- <!-- 资源访问处理器 -->
- <mvc:resources mapping="/static/**" location="/WEB-INF/static/" />
MvcConfig.java
- @Configuration
- @EnableWebMvc
- @ComponentScan(basePackages = "web.function", useDefaultFilters = false, includeFilters = {
- @ComponentScan.Filter(type = FilterType.ANNOTATION, value = {Controller.class})
- })
- public class MvcConfig extends WebMvcConfigurationSupport {
- private static final Logger logger = Logger
- .getLogger(MvcConfig.class);
- /**
- * 描述 : <注册试图处理器>. <br>
- *<p>
- <使用方法说明>
- </p>
- * @return
- */
- @Bean
- public ViewResolver viewResolver() {
- logger.info("ViewResolver");
- InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
- viewResolver.setPrefix("/WEB-INF/views/jsp/function/");
- viewResolver.setSuffix(".jsp");
- return viewResolver;
- }
- /**
- * 描述 : <注册消息资源处理器>. <br>
- *<p>
- <使用方法说明>
- </p>
- * @return
- */
- @Bean
- public MessageSource messageSource() {
- logger.info("MessageSource");
- ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
- messageSource.setBasename("config.messages.messages");
- return messageSource;
- }
- /**
- * 描述 : <注册servlet适配器>. <br>
- *<p>
- <只需要在自定义的servlet上用@Controller("映射路径")标注即可>
- </p>
- * @return
- */
- @Bean
- public HandlerAdapter servletHandlerAdapter(){
- logger.info("HandlerAdapter");
- return new SimpleServletHandlerAdapter();
- }
- /**
- * 描述 : <本地化拦截器>. <br>
- *<p>
- <使用方法说明>
- </p>
- * @return
- */
- @Bean
- public LocaleChangeInterceptor localeChangeInterceptor(){
- logger.info("LocaleChangeInterceptor");
- return new LocaleChangeInterceptor();
- }
- /**
- * 描述 : <基于cookie的本地化资源处理器>. <br>
- *<p>
- <使用方法说明>
- </p>
- * @return
- */
- @Bean(name="localeResolver")
- public CookieLocaleResolver cookieLocaleResolver(){
- logger.info("CookieLocaleResolver");
- return new CookieLocaleResolver();
- }
- /**
- * 描述 : <注册自定义拦截器>. <br>
- *<p>
- <使用方法说明>
- </p>
- * @return
- */
- @Bean
- public CP_InitializingInterceptor initializingInterceptor(){
- logger.info("CP_InitializingInterceptor");
- return new CP_InitializingInterceptor();
- }
- /**
- * 描述 : <RequestMappingHandlerMapping需要显示声明,否则不能注册自定义的拦截器>. <br>
- *<p>
- <这个比较奇怪,理论上应该是不需要的>
- </p>
- * @return
- */
- @Bean
- public RequestMappingHandlerMapping requestMappingHandlerMapping() {
- logger.info("RequestMappingHandlerMapping");
- return super.requestMappingHandlerMapping();
- }
- /**
- * 描述 : <添加拦截器>. <br>
- *<p>
- <使用方法说明>
- </p>
- * @param registry
- */
- @Override
- protected void addInterceptors(InterceptorRegistry registry) {
- // TODO Auto-generated method stub
- logger.info("addInterceptors start");
- registry.addInterceptor(localeChangeInterceptor());
- registry.addInterceptor(initializingInterceptor());
- logger.info("addInterceptors end");
- }
- /**
- * 描述 : <HandlerMapping需要显示声明,否则不能注册资源访问处理器>. <br>
- *<p>
- <这个比较奇怪,理论上应该是不需要的>
- </p>
- * @return
- */
- @Bean
- public HandlerMapping resourceHandlerMapping() {
- logger.info("HandlerMapping");
- return super.resourceHandlerMapping();
- }
- /**
- * 描述 : <资源访问处理器>. <br>
- *<p>
- <可以在jsp中使用/static/**的方式访问/WEB-INF/static/下的内容>
- </p>
- * @param registry
- */
- @Override
- protected void addResourceHandlers(ResourceHandlerRegistry registry) {
- logger.info("addResourceHandlers");
- registry.addResourceHandler("/static/**").addResourceLocations("/WEB-INF/static/");
- }
- /**
- * 描述 : <文件上传处理器>. <br>
- *<p>
- <使用方法说明>
- </p>
- * @return
- */
- @Bean(name="multipartResolver")
- public CommonsMultipartResolver commonsMultipartResolver(){
- logger.info("CommonsMultipartResolver");
- return new CommonsMultipartResolver();
- }
- /**
- * 描述 : <异常处理器>. <br>
- *<p>
- <系统运行时遇到指定的异常将会跳转到指定的页面>
- </p>
- * @return
- */
- @Bean(name="exceptionResolver")
- public CP_SimpleMappingExceptionResolver simpleMappingExceptionResolver(){
- logger.info("CP_SimpleMappingExceptionResolver");
- CP_SimpleMappingExceptionResolver simpleMappingExceptionResolver= new CP_SimpleMappingExceptionResolver();
- simpleMappingExceptionResolver.setDefaultErrorView("common_error");
- simpleMappingExceptionResolver.setExceptionAttribute("exception");
- Properties properties = new Properties();
- properties.setProperty("java.lang.RuntimeException", "common_error");
- simpleMappingExceptionResolver.setExceptionMappings(properties);
- return simpleMappingExceptionResolver;
- }
- /**
- * 描述 : <RequestMappingHandlerAdapter需要显示声明,否则不能注册通用属性编辑器>. <br>
- *<p>
- <这个比较奇怪,理论上应该是不需要的>
- </p>
- * @return
- */
- @Bean
- public RequestMappingHandlerAdapter requestMappingHandlerAdapter() {
- logger.info("RequestMappingHandlerAdapter");
- return super.requestMappingHandlerAdapter();
- }
- /**
- * 描述 : <注册通用属性编辑器>. <br>
- *<p>
- <这里只增加了字符串转日期和字符串两边去空格的处理>
- </p>
- * @return
- */
- @Override
- protected ConfigurableWebBindingInitializer getConfigurableWebBindingInitializer() {
- logger.info("ConfigurableWebBindingInitializer");
- ConfigurableWebBindingInitializer initializer = super.getConfigurableWebBindingInitializer();
- CP_PropertyEditorRegistrar register = new CP_PropertyEditorRegistrar();
- register.setFormat("yyyy-MM-dd");
- initializer.setPropertyEditorRegistrar(register);
- return initializer;
- }
- }
SpringMVC4零配置 :代码下载
SpringMVC4零配置--web.xml
SpringMVC4零配置--应用上下文配置【AppConfig】
SpringMVC4零配置--SpringSecurity相关配置【SpringSecurityConfig】
SpringMVC4零配置--Web上下文配置【MvcConfig】
SpringMVC4零配置--Web上下文配置【MvcConfig】的更多相关文章
- Web上下文配置【MvcConfig】
基于Servlet3.0规范和SpringMVC4注解式配置方式,实现零xml配置,弄了个小demo,供交流讨论. 项目说明如下: 1.db.sql是项目中用到的表,数据库使用的是oracle11g ...
- SpringMVC4零配置--web.xml
servlet3.0+规范后,允许servlet,filter,listener不必声明在web.xml中,而是以硬编码的方式存在,实现容器的零配置. ServletContainerInitiali ...
- java web.xml配置详解
1.启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点. 2.紧急着,容创建一个Servl ...
- web.xml 配置介绍
这个不是原创,有点早了,具体从哪里来的已经记不得了.但是东西是实实在在的. 1.启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<c ...
- 160329(二)、web.xml配置详解
1.启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点. 2.紧急着,容创建一个Servl ...
- Java Web学习总结(19)——web.xml配置详解
1.启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点. 2.紧急着,容创建一个Servl ...
- Maven系列--web.xml 配置详解
一 .web.xml介绍 启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点. 紧接着,容 ...
- Asp.net Web.Config - 配置元素 caching
Asp.net Web.Config - 配置元素 caching 记得之前在写缓存DEMO的时候,好像配置过这个元素,好像这个元素还有点常用. 一.caching元素列表 元素 说明 cache ...
- Spring MVC的web.xml配置详解(转)
出处http://blog.csdn.net/u010796790 1.spring 框架解决字符串编码问题:过滤器 CharacterEncodingFilter(filter-name) 2.在w ...
随机推荐
- MSMQ消息队列
MSMQ全称MicroSoft Message Queue,微软消息队列,是在多个不同的应用之间实现相互通信的一种异步传输模式,相互通信的应用可以分布于同一台机器上,也可以分布于相连的网络空间中的任一 ...
- Ubuntu 14.04下安装eclipse搭建C++开发环境
安装过程分为两部分:1.JAVA开发环境,即JDK的安装:2.eclipse的安装: 一.安装包下载 1.JDK官网下载地址:http://www.oracle.com/technetwork/jav ...
- HDOJ 1754 I Hate It 线段树 第二题
I Hate It Problem Description 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少.这让很多学生很反感. 不管你喜不喜欢,现在需要你做的是,就 ...
- 登陆中session的处理
在学校中的登陆注册使用的普通session存储信息,然后就是根据session中获取user是否拥有来判断是否登陆. 在一次面试中别人问到了我你们项目的登陆session是怎么一个情况,我这样答的话那 ...
- string(Integer)类的equals和==区别和联系(验证密码的时候用得到)
“==”在八种原始数据类型中,判断的是两边的值是否相等.对于对象类型来说,判断的是内存地址,所以为true所满足的条件就是两边的引用指向同一个对象. 比如String s1 = "abcde ...
- Tomcat的目录结构(二)
一.Tomcat的目录结构 bin:启动和关闭Tomcat的bat文件 conf:配置文件 server.xml:配置和server相关的信息,比如:Tomcat启动的端口号,配置Host,配置Con ...
- 使用isEqual来比较对象
比较对象 您可以使用 isEqual: 方法比较两个对象.让接收消息的对象与传入的对象进行比较:如果相同,该方法返回 YES.例如: BOOL objectsAreEqual = [obj1 isEq ...
- PHP中的文件下载
文件下载:用<a href="链接"></a>这种是下载,但对于浏览器能解释的文件类型此下载非彼下载.向服务器请求的时候:1.协议和版本2.头信息3.请求的 ...
- "无意义"的div和span标签
HTML <div> 元素是块级元素,它是可用于组合其他 HTML 元素的容器.<div>元素没有特定的含义.除此之外,由于它属于块级元素,浏览器会在其前后显示折行.如果与 C ...
- Unity3D入门(一):环境搭建
1.Unity3D 目前最新正式版本是4.2.1f 官网下载,以前的版本安装时候需要序列号激活,新版本4.2.1f 不需要,完全免费,但发布的时候需要许可证 2.要学习的同学,下载频道可以找到破解补 ...