springboot使用注解配置filter以及对象转换
2017-08-31 13:42
1256 查看
其实这部分配置就是从之前xml中提取出来,用注解的方式配置。
1、配置filter
方法一:
1)在application中添加注解@ServletComponentScan
2)写一个filter,用@WebFilter(urlPatterns = “/*”)注解标注
方法二:
1)写一个WebMvcConfig类继承WebMvcConfigurerAdapter
2)使用@EnableWebMvc,@Configuration注解
3)写一个filter的初始化方法,用@Bean注解
4)写一个FilterRegistrationBean的初始化方法,用@Bean注解,在初始化方法中配置之前的filter。
代码见后文。
2、配置拦截器
1)在之前的config类中,写一个拦截器初始化方法,用@Bean注解
2)重写addInterceptors方法, 在其中配置拦截路径以及不拦截 路径
代码见后文。
3、配置对象转换
见后文代码,配置了json格式转换为对象, 已经时间统一格式转换。
也可以在xml文件中配置,在application中使用注解@ImportResource(“classpath:beanRefContext.xml”),配置引入的xml文件。
在此xml文件中配置filter,interceptor,对象转换
这里额外记录一下对象转换的xml配置
1、配置filter
方法一:
1)在application中添加注解@ServletComponentScan
2)写一个filter,用@WebFilter(urlPatterns = “/*”)注解标注
方法二:
1)写一个WebMvcConfig类继承WebMvcConfigurerAdapter
2)使用@EnableWebMvc,@Configuration注解
3)写一个filter的初始化方法,用@Bean注解
4)写一个FilterRegistrationBean的初始化方法,用@Bean注解,在初始化方法中配置之前的filter。
代码见后文。
2、配置拦截器
1)在之前的config类中,写一个拦截器初始化方法,用@Bean注解
2)重写addInterceptors方法, 在其中配置拦截路径以及不拦截 路径
代码见后文。
3、配置对象转换
见后文代码,配置了json格式转换为对象, 已经时间统一格式转换。
@EnableWebMvc @Configuration public class WebMvcConfig extends WebMvcConfigurerAdapter{ @Bean public HandlerInterceptorAdapter handlerInterceptorAdapter(){ return new HandlerInterceptorAdapter(); } @Bean public FilterRegistrationBean characterEncodingFilterRegistration() { FilterRegistrationBean registration = new FilterRegistrationBean(); //注入过滤器 registration.setFilter(characterEncodingFilter()); //拦截规则 registration.addUrlPatterns("/*"); //过滤器名称 registration.setName("CharacterEncodingFilter"); //过滤器顺序 registration.setOrder(1); return registration; } @Bean public CharacterEncodingFilter characterEncodingFilter(){ CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter(); characterEncodingFilter.setEncoding("UTF-8"); characterEncodingFilter.setForceEncoding(true); return characterEncodingFilter; } @Bean public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() { MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(); List<MediaType> supportedMediaTypes = new ArrayList<>(); supportedMediaTypes.add(MediaType.APPLICATION_JSON_UTF8); supportedMediaTypes.add(MediaType.TEXT_HTML); converter.setSupportedMediaTypes(supportedMediaTypes); converter.setObjectMapper(objectMapper()); return converter; } @Bean public ObjectMapper objectMapper() { ObjectMapper objectMapper = new ObjectMapper(); objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")); return objectMapper; } @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(handlerInterceptorAdapter()).addPathPatterns("/**"); super.addInterceptors(registry); } @Override public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { converters.add(mappingJackson2HttpMessageConverter()); super.configureMessageConverters(converters); } }
也可以在xml文件中配置,在application中使用注解@ImportResource(“classpath:beanRefContext.xml”),配置引入的xml文件。
在此xml文件中配置filter,interceptor,对象转换
这里额外记录一下对象转换的xml配置
<mvc:annotation-driven> <mvc:message-converters> <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> <value>application/json;charset=UTF-8</value> </list> </property> <property name="objectMapper"> <bean class="org.codehaus.jackson.map.ObjectMapper"> <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>
相关文章推荐
- SpringBoot系列三:SpringBoot基本概念(统一父 pom 管理、SpringBoot 代码测试、启动注解分析、配置访问路径、使用内置对象、项目打包发布)
- 使用spring注解 自动装配以及自动扫描机制 实现零xml配置的前提
- Spring Boot中缓存注解的配置与使用
- Spring Boot中的缓存支持(一)注解配置与EhCache使用
- Spring Boot中使用MyBatis注解配置详解
- Spring Boot中使用MyBatis注解配置详解
- Spring Boot中使用MyBatis注解配置详解
- Spring boot下配置使用redis--注解形式
- spring aop的使用(注解方式以及基于xml配置方式)
- Spring Boot中使用MyBatis注解配置详解
- Spring Boot 2.0.0.M3使用案例,案例配置,常用命令,注解介绍,热部署
- 关于怎么解决从ajax传入的json参数注入到Controller的接收对象 以及如何在Spring Boot项目使用参数校验
- 使用spring注解 自动装配以及自动扫描机制 实现零xml配置的前提
- 在spring boot中使用@WebFilter配置filter(包括排除URL)
- springboot实现将配置文件的属性转换成一个对应的pojo对象的属性
- Spring Boot中使用MyBatis注解配置详解
- Spring Boot中的缓存支持(一)注解配置与EhCache使用
- 使用spring注解 自动装配以及自动扫描机制 实现零xml配置的前提
- springboot filter使用配置
- spring boot-Logging的配置以及使用