1、在读取spring.factories 文件;
SpringBoot 启动时会读取spring-boot-autoconfigure-2.1.0.RELEASE-sources.jar 包下的META-INF/spring.factories 文件;
org.springframework.boot.autoconfigure.EnableAutoConfiguration 属性值加载自动配置类。
2、加载xxProperties类
根据自动配置类中指定的xxxProperties类设置自动配置属性值,开发者也可以根据xxxProperties类中指定的属性在yml配置文件中修改自动配置;
3、@ConditionalOnClass(xx.class)该注解决定加载那些组件;
需要服务xx类,才会启动自动加载类HttpEncodingAutoConfiguration ;指定特定组件加入IOC容器所需要的具备特定条件,这个组件会在满足条件是加入IOC容器;
例如:
@Configuration
@EnableConfigurationProperties(HttpEncodingProperties.class)
@ConditionalOnWebApplication
@ConditionalOnClass(CharacterEncodingFilter.class)
@ConditionalOnProperty(prefix = “spring.http.encoding”, value = “enabled”, matchIfMissing = true)
public class HttpEncodingAutoConfiguration {
}