Spring boot面试题---- Spring Boot 自动配置的原理

一、自动配置类的发现

  • Spring Boot 会扫描类路径下的META-INF/spring.factories文件。这个文件中包含了许多配置信息,其中关键的是org.springframework.boot.autoconfigure.EnableAutoConfiguration的配置。
  • 这个文件中会列出一系列的自动配置类的全限定名,这些自动配置类是 Spring Boot 根据不同的场景和依赖提供的配置类。例如,当在项目中添加了spring-boot-starter-web依赖时,spring.factories文件中对应的自动配置类就会被发现。

二、条件注解的使用

  • Spring Boot 广泛使用了@Conditional注解及其派生注解,如@ConditionalOnClass、@ConditionalOnBean、@ConditionalOnMissingBean、@ConditionalOnProperty等。
  • @ConditionalOnClass:当类路径下存在指定的类时,该自动配置类才会生效。例如,对于数据库自动配置,如果类路径下有DataSource类,相应的自动配置类可能会被启用。
@Configuration
@ConditionalOnClass(DataSource.class)
public class DataSourceAutoConfiguration {
   
    // 配置数据源的相关代码
}
  • @ConditionalOnBean:当容器中存在指定的 Bean 时,配置才会生效。比如,如果容器中已经有了一个DataSource Bean,另一个依赖于DataSource的自动配置类可能会被启用。

你可能感兴趣的:(spring,boot,oracle,数据库)