springboot中的web自动配置相关问题

 1.此种语法。

接口.super.默认方法()

jdk1.8中,接口提供默认方法,防止接口修改,导致实现类都需要该的情况。

此种方法,可以在接口的实现类的实现方法中,调用接口中的同名被实现方法的默认方法。

这里的super是调用内存中,接口实现类的对象的父。也就是原接口中的默认方法。

2.这里调用接口中默认方法,可能是idea重写接口默认方法自带的功能。并不是springboot想让你通过这个来,介入默认boot的web配置。

真正的实现,可以注入自定义WebMvcConfigurer的实现类-配置类,可以做到自定义和boot的默认配置兼容的方法(只替换自定义的部分,其他没定义的依然是走默认)。

核心是:WebMvcConfigurerComposite这个类的

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
   for (WebMvcConfigurer delegate : this.delegates) {
      delegate.addResourceHandlers(registry);
   }
}

 delegates中存放的就是WebMvcConfigurer的真正配置的实现类对象,当没有提供自定义提供配置bean时,只有默认配置bean一个,若配置了就是2个。循环录入配置,所以才做到boot的约定大于配置,自动兼容默认。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值