使用Spring Boot的一个好处就是它提供了很多的Starter,可以帮助我们实现自动配置,极大的方便我们创建一个Spring应用。如果我们想创建一个自定义的Starter该如何入手呢?一个自动配置包含以下两个模块。
一、auto-configuration模块
一个auto-configuration模块包含了一个继承@Configuration的注解,通过@Conditional*条件注解来添加我们的自动配置类的约束条件。可以参考spring-boot-autoconfigure 模块的META-INF/spring.factories,里面是官方实现的一些自动配置类。
条件注解
@ConditionalOnClass:表示classpath存在相关的类才生效;
@ConditionalOnMissingClass:表示classpath存在相关的类不生效;
@ConditionalOnBean:表示如果存在相关Bean则该自动配置生效;
@ConditionalOnMissingBean:表示如果存在相关Bean则该自动配置不生效;
@ConditionalOnProperty:根据property条件约束;