Spring Boot 编写属于自己的插件
2018-12-06 本文已影响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=
里面配置所有需要自动加载的配置