SpringBoot2022
spring 向spring切换
不对旧的组件进行代码修改
1、配置类
@EnableConfigurationProperties 的作用
- 将SsoProperties 加入到容器中
- 开启SsoProperties的配置绑定功能
@Configuration
@EnableConfigurationProperties(value = 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的作用
- 指定主配置文件中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
}
注意,两种方式不能共存
自动配置原理
- springboot 装载所有的自动配置类
- 根据条件,判断自动配置类是否生效。每个配置类都会绑定一个xxxProperties。我们可以再配置文件中指定xxxProperties的值,从而实现对组件属性的自定义配置
- 生效的自动配置类,再根据各种条件判断是否往容器中添加各种组件
- 只要用户自己配置了,就以用户的优先(通过 @ConditionalOnMissingBean实现)
定制化配置
方式一:用户自己通过@Bean注解,定制bean
方式二:用户根据在配置文件中指定xxxProperties对应的属性的值,从而达到定制组件属性的目的
暂时
filter执行的顺序就是其声明在springmvc中的顺序
https://www.zhihu.com/questio...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。