SpringMVC4零配置--Web上下文配置【MvcConfig】

与SpringSecurity的配置类似,spring同样为我们提供了一个实现类WebMvcConfigurationSupport和一个注解@EnableWebMvc以帮助我们减少bean的声明。

 

applicationContext-MvcConfig.xml

	
		
	




	
	
		
		
	

	
	
	

	
	

	
	

	
	
		
		
		
			
				common_error
			
		
	


	
	




	
	

	
	


	
	
		
		
	




	
	
		
			
				
			
		
		
			
				
				
			
		
	


	
	


	
	

 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);

    /**                                                          
    * 描述 : <注册试图处理器>. 
*

<使用方法说明>

* @return */ @Bean public ViewResolver viewResolver() { logger.info("ViewResolver"); InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); viewResolver.setPrefix("/WEB-INF/views/jsp/function/"); viewResolver.setSuffix(".jsp"); return viewResolver; } /** * 描述 : <注册消息资源处理器>.
*

<使用方法说明>

* @return */ @Bean public MessageSource messageSource() { logger.info("MessageSource"); ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource(); messageSource.setBasename("config.messages.messages"); return messageSource; } /** * 描述 : <注册servlet适配器>.
*

<只需要在自定义的servlet上用@Controller("映射路径")标注即可>

* @return */ @Bean public HandlerAdapter servletHandlerAdapter(){ logger.info("HandlerAdapter"); return new SimpleServletHandlerAdapter(); } /** * 描述 : <本地化拦截器>.
*

<使用方法说明>

* @return */ @Bean public LocaleChangeInterceptor localeChangeInterceptor(){ logger.info("LocaleChangeInterceptor"); return new LocaleChangeInterceptor(); } /** * 描述 : <基于cookie的本地化资源处理器>.
*

<使用方法说明>

* @return */ @Bean(name="localeResolver") public CookieLocaleResolver cookieLocaleResolver(){ logger.info("CookieLocaleResolver"); return new CookieLocaleResolver(); } /** * 描述 : <注册自定义拦截器>.
*

<使用方法说明>

* @return */ @Bean public CP_InitializingInterceptor initializingInterceptor(){ logger.info("CP_InitializingInterceptor"); return new CP_InitializingInterceptor(); } /** * 描述 : .
*

<这个比较奇怪,理论上应该是不需要的>

* @return */ @Bean public RequestMappingHandlerMapping requestMappingHandlerMapping() { logger.info("RequestMappingHandlerMapping"); return super.requestMappingHandlerMapping(); } /** * 描述 : <添加拦截器>.
*

<使用方法说明>

* @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"); } /** * 描述 : .
*

<这个比较奇怪,理论上应该是不需要的>

* @return */ @Bean public HandlerMapping resourceHandlerMapping() { logger.info("HandlerMapping"); return super.resourceHandlerMapping(); } /** * 描述 : <资源访问处理器>.
*

<可以在jsp中使用/static/**的方式访问/WEB-INF/static/下的内容>

* @param registry */ @Override protected void addResourceHandlers(ResourceHandlerRegistry registry) { logger.info("addResourceHandlers"); registry.addResourceHandler("/static/**").addResourceLocations("/WEB-INF/static/"); } /** * 描述 : <文件上传处理器>.
*

<使用方法说明>

* @return */ @Bean(name="multipartResolver") public CommonsMultipartResolver commonsMultipartResolver(){ logger.info("CommonsMultipartResolver"); return new CommonsMultipartResolver(); } /** * 描述 : <异常处理器>.
*

<系统运行时遇到指定的异常将会跳转到指定的页面>

* @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; } /** * 描述 : .
*

<这个比较奇怪,理论上应该是不需要的>

* @return */ @Bean public RequestMappingHandlerAdapter requestMappingHandlerAdapter() { logger.info("RequestMappingHandlerAdapter"); return super.requestMappingHandlerAdapter(); } /** * 描述 : <注册通用属性编辑器>.
*

<这里只增加了字符串转日期和字符串两边去空格的处理>

* @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】

你可能感兴趣的:(Spring)