美文网首页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