SpringBoot2022【草稿】

SpringBoot2022 spring 向spring切换
不对旧的组件进行代码修改 1、配置类
【SpringBoot2022【草稿】】@EnableConfigurationProperties 的作用

  1. 将SsoProperties 加入到容器中
  2. 开启SsoProperties的配置绑定功能
@Configuration @EnableConfigurationProperties(value = https://www.it610.com/article/SsoProperties.class) public SsoFilterConfiguration{// 形参,spring会去容器中找SsoProperties这个bean @Bean public SsoFilter ssoFilter(SsoProperties ssoProperties) { SsoFilter ssoFilter = new SsoFilter(); ssoFilter.setName(ssoProperties.getName()); ssoFilter.setPassword(ssoProperties.getPassword()); return ssoFilter; } }

2、properties类
@ConfigurationProperties的作用
  1. 指定主配置文件中clair.sso前缀的值绑定到对应的属性上
@ConfigurationProperties(prefix = "clair.sso") public SsoProperties{ private String name; private String password; // 提供getter setter方法 不用lombok }

3、主功能类
public SsoFilter{ private String name; private String password; // getter setter }

对旧的组件进行代码修改
@Component @ConfigurationProperties(prefix = "clair.sso") public SsoFilter{ private String name; private String password; // getter setter }

注意,两种方式不能共存
自动配置原理
  1. springboot 装载所有的自动配置类
  2. 根据条件,判断自动配置类是否生效。每个配置类都会绑定一个xxxProperties。我们可以再配置文件中指定xxxProperties的值,从而实现对组件属性的自定义配置
  3. 生效的自动配置类,再根据各种条件判断是否往容器中添加各种组件
  4. 只要用户自己配置了,就以用户的优先(通过 @ConditionalOnMissingBean实现)
定制化配置
方式一:用户自己通过@Bean注解,定制bean
方式二:用户根据在配置文件中指定xxxProperties对应的属性的值,从而达到定制组件属性的目的
暂时
SpringBoot2022【草稿】
文章图片

SpringBoot2022【草稿】
文章图片

SpringBoot2022【草稿】
文章图片

filter执行的顺序就是其声明在springmvc中的顺序
SpringBoot2022【草稿】
文章图片

https://www.zhihu.com/questio...

    推荐阅读