spring boot 编写starter插件


springboot提供了一个非常重要的功能--自动化配置。使用注解@ConditionalOnClass,@ConditionalOnProperty 可以非常方便的设置各种条件来达到自动加载的目的。

利用这一特性,我们可以把平时通用的功能封装成springboot的starter 插件
下面说一下编写 starter 插件具体的步骤。


1、 pom.xml 引用


    org.springframework.boot
    spring-boot-starter



    org.springframework.boot
    spring-boot-configuration-processor
    true



    org.springframework.boot
    spring-boot-autoconfigure

2、编写自动配置

@Configuration
@ConditionalOnClass(AuthValidator.class)
@ConditionalOnProperty(value = "auth.token.valid.enabled", matchIfMissing = true)
public class AuthTokenAutoConfiguration {

    @Autowired(required = false)
    private OkHttpClient okHttpClient;

    @Value("${auth.token.valid.key}")
    private Integer key;

    @Value("${auth.token.valid.type:2}")
    private Integer type;

    @Value("${auth.token.valid.url}")
    private String validUrl;

    @Bean("authValidator")
    //@ConditionalOnMissingBean
    public AuthValidator getValidator(){
        
        return new TokenAuthValidator(okHttpClient, key, type, validUrl);
    }

    @Bean
    @ConditionalOnMissingBean
    public AuthBeanBuilder getAuthBeanBuilder(){
        return new TokenAuthBeanBuilder();
    }

}

3、自动配置设置

resources资源目录下增加 META-INF/spring.factories
配置org.springframework.boot.autoconfigure.EnableAutoConfiguration=
里面配置所有需要自动加载的配置

你可能感兴趣的:(spring boot 编写starter插件)