Spring boot自动配置示例

自动配置示例

HttpEncodingAutoConfiguration
Http编码自动配置

以该类为例,查看自动配置过程
EnableAutoConfiguration
这里写图片描述
HttpEncodingAutoConfiguration
点击,进入
这里写图片描述
@Configuration
表示这是一个配置类
与以前编写的配置文件一样,也可以给容器中添加组件

@EnableConfigurationProperties({HttpEncodingProperties.class})
启动指定类的ConfigurationProperties功能

将配置文件中对应的值和HttpEncodingProperties绑定起来
并把HttpEncodingProperties加入到ioc容器中

点击,进入
这里写图片描述
@ConfigurationProperties
从配置文件中,获取指定的值
和bean的属性进行绑定

所有在配置文件中能配置的属性
都是在xxxxProperties类中封装者

配置文件能配置什么
就可以参照某个功能,对应的这个属性类

@ConditionalOnWebApplication
Spring底层@Conditional注解
根据不同的条件
如果,满足指定的条件
整个配置类里面的配置就会生效

判断当前应用是否是web应用
如果是,当前配置类生效

@ConditionalOnClass(CharacterEncodingFilter.class)
判断当前项目
有没有这个类CharacterEncodingFilter
SpringMVC中进行乱码解决的过滤器

@ConditionalOnProperty(prefix = “spring.http.encoding”, value = “enabled”, matchIfMissing =true)
判断配置文件中
是否存在某个配置 spring.http.encoding.enabled
如果,不存在,判断也是成立的

即使,配置文件中不配置pring.http.encoding.enabled=true
也是默认生效的

根据当前不同的条件判断,决定这个配置类是否生效
一但这个配置类生效,这个配置类就会给容器中添加各种组件

这些组件的属性,是从对应的properties类中获取的
这些类里面的每一个属性,又是和配置文件绑定的

private final HttpEncodingProperties properties;
已经和SpringBoot的配置文件映射了

public HttpEncodingAutoConfiguration(HttpEncodingProperties properties) {
this.properties = properties;
}

只有一个有参构造器的情况下
参数的值就会从容器中拿

@Bean
给容器中添加一个组件
这个组件的某些值,需要从properties中获取

@ConditionalOnMissingBean(CharacterEncodingFilter.class)
判断容器,有没有这个组件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值