简概
官网文档:https://docs.spring.io/spring-boot/docs/2.7.5/reference/htmlsingle/#using.auto-configuration
主要步骤
编写 Java Config
- @Configuration
添加条件
- @Conditional
绑定⾃动配置
- META-INF/spring.factories
条件注解
条件注解
- @Conditional
类条件
- @ConditionalOnClass
- @ConditionalOnMissingClass
属性条件
- @ConditionalOnProperty
Bean 条件
- @ConditionalOnBean
- @ConditionalOnMissingBean
- @ConditionalOnSingleCandidate
资源条件
- @ConditionalOnResource
Web 应⽤条件
- @ConditionalOnWebApplication
- @ConditionalOnNotWebApplication
其他条件
- @ConditionalOnExpression
- @ConditionalOnJava
- @ConditionalOnJndi
详述
自动配置类可以捆绑在外部jar中,并依旧可以被Spring Boot获取。
自动配置可以与一个“starter”相关联,该starter
提供自动配置代码以及与之一起使用的典型库。我们首先介绍构建自己的自动配置所需的知识,然后继续介绍创建自定义启动器所需的典型步骤。
理解Auto-configured Beans
实现自动配置的类使用@AutoConfiguration
注解。该注解本身使用@Configuration
进行元注解,使自动配置成为标准的@Configuration
类。可以通过附加@Conditional
注解用于约束何时应用自动配置。通常,自动配置类使用@ConditionalOnClass
和@ConditionalOnMissingBean
注解。这确保了自动配置只在找到相关类并且没有声明自己的@Configuration
时才会应用。
你可以浏览 spring-boot-autoconfigure 的源代码来查看Spring提供的@AutoConfiguration
类(参见