美文网首页java相关
Spring Boot 编写属于自己的插件

Spring Boot 编写属于自己的插件

作者: 时间道 | 来源:发表于2018-12-06 18:16 被阅读0次

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

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


1、 pom.xml 引用

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-autoconfigure</artifactId>
</dependency>

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 编写属于自己的插件

    本文链接:https://www.haomeiwen.com/subject/imtacqtx.html