spring boot拦截器WebMvcConfigurerAdapter,以及高版本的替换方案(转)

文章转自 http://blog.51cto.com/12066352/2093750java

最近项目采用spring icloud,用的spring boot版本是1.5.x的,spring boot 2.0,Spring 5.0 之后WebMvcConfigurerAdapter会取消掉。如下介绍下大致的内容,但愿对你们都有所帮助。spring

  • 如下WebMvcConfigurerAdapter 比较经常使用的重写接口

/** 解决跨域问题 **/ public void addCorsMappings(CorsRegistry registry) ; /** 添加拦截器 **/ void addInterceptors(InterceptorRegistry registry); /** 这里配置视图解析器 **/ void configureViewResolvers(ViewResolverRegistry registry); /** 配置内容裁决的一些选项 **/ void configureContentNegotiation(ContentNegotiationConfigurer configurer); /** 视图跳转控制器 **/ void addViewControllers(ViewControllerRegistry registry); /** 静态资源处理 **/ void addResourceHandlers(ResourceHandlerRegistry registry); /** 默认静态资源处理器 **/ void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer);
  • 新的版本解决方案目前有两种

    方案1 直接实现WebMvcConfigurer跨域

    @Configuration public class WebMvcConfg implements WebMvcConfigurer { @Override public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController("/index").setViewName("index"); } }

    方案2 直接继承WebMvcConfigurationSupportapp

    @Configuration public class WebMvcConfg extends WebMvcConfigurationSupport { @Override public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController("/index").setViewName("index"); } }

其实,源码下WebMvcConfigurerAdapter是实现WebMvcConfigurer接口,因此直接实现WebMvcConfigurer接口也能够;WebMvcConfigurationSupport与WebMvcConfigurerAdapter、接口WebMvcConfigurer处于同一个目录下WebMvcConfigurationSupport包含WebMvcConfigurer里面的方法,由此看来版本中应该是推荐使用WebMvcConfigurationSupport类的,WebMvcConfigurationSupport应该是新版本中对WebMvcConfigurerAdapter的替换和扩展【我的看法,若是有误,请帮忙纠正】ide

相关文章
相关标签/搜索