SpringBoot 自动配置原理(超级无敌详细)-2

本文深入解析SpringBoot自动配置的实现,以HttpEncodingAutoConfiguration为例,分析条件判断、组件获取、配置文件读取等步骤,揭示自动配置的工作原理。通过@Conditional注解控制配置类生效,使用@ConfigurationProperties绑定配置文件,动态创建和配置组件。
摘要由CSDN通过智能技术生成

SpringBoot 自动配置原理(超级无敌详细)-1

2.自动配置的实现

刚刚我们整体的过了一下主配置文件是如何实现的,但我们还没深入的研究如何实现自动装配功能。我们回到这个文件下,找一个具体的自动配置类进行分析。

jar:file:/apache-maven-3.6.3-repository/org/springframework/boot/spring-boot-autoconfigure/2.2.6.RELEASE/spring-boot-autoconfigure-2.2.6.RELEASE.jar!/META-INF/spring.factories

在这里,我们用 HttpEncodingAutoConfiguration (Http编码自动配置) 作为例子吧

org.springframework.boot.autoconfigure.web.servlet.HttpEncodingAutoConfiguration,\

注释

@Configuration(proxyBeanMethods = false)
@EnableConfigurationProperties(HttpProperties.class)
@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET)
@ConditionalOnClass(CharacterEncodingFilter.class)
@ConditionalOnProperty(prefix = "spring.http.encoding", value = "enabled", matchIfMissing = true)
public class HttpEncodingAutoConfiguration {
   

	private final HttpProperties.Encoding properties;

	public HttpEncodingAutoConfiguration(HttpProperties properties) {
   
		this.properties = properties.getEncoding();
	}

	@Bean
	@ConditionalOnMissingBean
	public CharacterEncodingFilter characterEncodingFilter() {
   
		CharacterEncodingFilter filter = new OrderedCharacterEncodingFilter();
		filter.setEncoding(this.properties.getCharset().name());
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值