【SpringBoot】SpringBoot 2.x.x 版本 与 旧版本的区别

SpringBoot 2.x.x 版本 与 旧版本的区别

学习SpringBoot时,跟视频上的版本不一致,有几处地方不一样,特此记录

1、WebMvcConfigurerAdapter已过时

在新版本的SpringBoot中,WebMvcConfigurerAdapter这个抽象类已经过时。因为SpringBoot的 2.0 及其以上版本最低支持
Java 8,而Java 8 中有个新特性就是default关键字

default方法是在java8中引入的关键字,也可称为Virtual extension methods——虚拟扩展方法。是指,在接口内部包含了一些默认的方法实现(也就是接口中可以包含方法体,这打破了Java之前版本对接口的语法限制),从而使得接口在进行扩展的时候,不会破坏与接口相关的实现类代码。


根据此特性,SpringBoot 2.0.0对WebMvcConfigurerAdapter的上层接口WebMvcConfigurer进行了改进,将WebMvcConfigurer中的方法全部改为default关键字修饰的方法,因此不需要再使用适配器进行适配。下面截取WebMvcConfigurer的部分代码:

public interface WebMvcConfigurer {
	default void configurePathMatch(PathMatchConfigurer configurer) {
    }

    default void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
    }

    default void configureAsyncSupport(AsyncSupportConfigurer configurer) {
    }

    default void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
    }

也就是说 WebMvcConfigurerAdapter 被 WebMvcConfigurer 接口替代了,可以直接继承 WebMvcConfigurer 接口然后实现他的default方法即可。
除了WebMvcConfigurer接口之外,WebMvcConfigurerAdapter 还可以用 WebMvcConfigurationSupport 替代,只不过使用WebMvcConfigurationSupport这个类来替换WebMvcConfigurerAdapter时会全面接管对SpringMVC的配置,即SpringBoot对SpringMVC的自动配置全部失效,均使用用户对SpringMVC的配置。

2、SpringMVC拦截器拦截静态资源

我们知道旧版本的 SpringBoot 配置的拦截器对静态资源是默认放行的,而SpringBoot 2.0.0及其以上版本的拦截器不会对静态资源默认放行,也会进行拦截。如果想要使用静态资源就必须排除静态资源的请求路径。
如一下代码:

@Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new LoginHandlerIntercepter()).addPathPatterns("/**")
                .excludePathPatterns("/asserts/**","/webjars/**");
    }

我的静态资源放在 /asserts 和 /webjars 中,/**会统配所有的资源,这样拦截器就不会拦截我们们的静态资源。

目前还在学习,后续可能还有补充。

  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值