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 ...
随机推荐
- 5.2使用select,poll
5.2 使用select,poll // CPU占用率低,适用于很多简单场合 参考:UNIX环境高级编程 I/O多路转接 监测多个文件,只要有某一个文件可读/可写/异常或超时,即返回 int se ...
- NLTk
1.python的nltk中文使用和学习资料汇总帮你入门提高 http://blog.csdn.net/huyoo/article/details/12188573
- HDU 5313 bitset优化背包
题目大意: 添加尽可能少的边,最后使图形成二分图 一开始将图区分成一个个联通分量,根据二分图染色,计算出每个联通分量的黑色点和白色点的个数 希望添加的边最少,那么合并的时候,希望黑白块尽可能平均,这无 ...
- Xcode6.2创建Empty Application
运行Xcode 6,创建一个Single View Application工程. 创建好后,把工程目录下的Main.storyboard和LaunchScreen.xib删除,扔进废纸篓. 打 ...
- CodeForces 546A-Soldier and Bananas
题意: 有n dollar,the first banana cost k dollars,第i个就需cost k*i,问买w个bananas是否需要借钱:借钱需要多少? 分析:首先计算w个bana ...
- UIScrollerView常见属性
CGSize contentSize :设置UIScrollView的滚动范围 CGPoint contentOffset :UIScrollView当前滚动的位置 UIEdgeInsets cont ...
- Java中方法与数组
1:方法(掌握) (1)方法:就是完成特定功能的代码块. 注意:在很多语言里面有函数的定义,而在Java中,函数被称为方法. (2)格式: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参 ...
- 将Ajax 中数组转换成字符串 封装成类
<?php class Ajax{ //ajax调用的方法 //sql是要执行的语句 //$type是SQL语句的类型,0代表增删改,1代表查询 //$db代表要操作的数据 public fun ...
- 按Right-BICEP要求的任务二的测试
测试方法:Right-BICEP 测试计划: 1.Right-结果是否正确? 2.B-是否所有的边界条件都是正确的? 3.P-是否满足性能要求? 4.是否有乘除法? 5.是否有括号? 6.是否有输出方 ...
- HYSBZ 1415 - 聪聪和可可(概率DP)
http://vjudge.net/problem/viewProblem.action?id=20613 题意:不用说了,中文题. 这个题可以用概率DP来做. 题中要求猫抓到老鼠的时间期望.分析一下 ...