- WebMvcConfigurer
- WebMvcConfigurer接口常用的方法
- addInterceptors:拦截器
- addViewControllers:页面跳转
- addResourceHandlers:静态资源
- configureViewResolvers:视图解析器
- addCorsMappings:跨域
- configureMessageConverters:信息转换器
WebMvcConfigurer配置类其实是Spring内部的一种配置方式,采用JavaBean的形式来代替传统的xml配置文件形式进行针对框架个性化定制,可以自定义一些Handler,Interceptor,ViewResolver,MessageConverter。基于java-based方式的spring mvc配置,需要创建一个配置类并实现WebMvcConfigurer 接口;
在Spring Boot 1.5版本都是靠重写WebMvcConfigurerAdapter的方法来添加自定义拦截器,消息转换器等。SpringBoot 2.0 后,该类被标记为@Deprecated(弃用)。官方推荐直接实现WebMvcConfigurer或者直接继承WebMvcConfigurationSupport。
WebMvcConfigurer接口常用的方法void addInterceptors(InterceptorRegistry var1); void addViewControllers(ViewControllerRegistry registry); void addResourceHandlers(ResourceHandlerRegistry registry); void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer); void configureViewResolvers(ViewResolverRegistry registry); void configureContentNegotiation(ContentNegotiationConfigurer configurer); public void addCorsMappings(CorsRegistry registry) ;addInterceptors:拦截器
addInterceptor:需要一个实现HandlerInterceptor接口的拦截器实例
addPathPatterns:用于设置拦截器的过滤路径规则;addPathPatterns("
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/my
@Bean
public InternalResourceViewResolver resourceViewResolver()
{
InternalResourceViewResolver internalResourceViewResolver = new InternalResourceViewResolver();
//请求视图文件的前缀地址
internalResourceViewResolver.setPrefix("/WEB-INF/jsp/");
//请求视图文件的后缀
internalResourceViewResolver.setSuffix(".jsp");
return internalResourceViewResolver;
}
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
super.configureViewResolvers(registry);
registry.viewResolver(resourceViewResolver());
}
addCorsMappings:跨域
@Override
public void addCorsMappings(CorsRegistry registry) {
super.addCorsMappings(registry);
registry.addMapping("/cors
@Override
public void configureMessageConverters(List> converters) {
//调用父类的配置
super.configureMessageConverters(converters);
//创建fastJson消息转换器
FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
//创建配置类
FastJsonConfig fastJsonConfig = new FastJsonConfig();
//修改配置返回内容的过滤
fastJsonConfig.setSerializerFeatures(
SerializerFeature.DisableCircularReferenceDetect,
SerializerFeature.WriteMapNullValue,
SerializerFeature.WriteNullStringAsEmpty
);
fastConverter.setFastJsonConfig(fastJsonConfig);
//将fastjson添加到视图消息转换器列表内
converters.add(fastConverter);
}
《核心技术系列专栏汇总》
- 《Java系核心技术》
- 《中间件核心技术》
- 《微服务核心技术》
- 《分布式核心技术》
- 《云原生核心技术》
- 《数据库相关技术》
- 《通用业务实现集》
- 《一起去大厂系列》
- 《开源项目o s s a》
需要 大厂面试题、简历模版、电子书、学习资料 等关注【公众号】回复「 1024 」即可。



