如何定义一个自己的Starter
我们的Starer提供一个Service,包含一个能够将配置文件中配置的字符串根据传入的字符进行分割的方法String[] split(String separatorChar)。将配置文件中的字符串读入
public class StarterService { private String config; public StarterService(String config) { this.config = config; } public String[] split(String separatorChar) { return StringUtils.split(this.config, separatorChar); } }
配置文件读取类
@ConfigurationProperties("example.service")//从yml的配置文件里面注入 public class StarterServiceProperties { private String config; public void setConfig(String config) { this.config = config; } public String getConfig() { return config; } }
编写自动配置的类:
@Configuration @ConditionalOnClass(StarterService.class) //在当classpath下发现该类的情况下进行自动配置。 @EnableConfigurationProperties(StarterServiceProperties.class) public class StarterAutoConfigure { @Autowired private StarterServiceProperties properties; @Bean @ConditionalOnMissingBean //当Spring Context中不存在该Bean时 @ConditionalOnProperty(prefix = "example.service", value = "enabled", havingValue = "true")//当配置文件中example.service.enabled=true
StarterService starterService (){
return new StarterService(properties.getConfig()); } }
最后:
在resources/META-INF/下创建spring.factories文件,并添加如下内容:
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.example.autocinfigure.StarterAutoConfigure
项目发布:
在项目根目录执行 mvn install 进行打包安装。
测试我们的Starter
@Autowired private StarterService starterService; @Test public void starterTest() { String[] splitArray = starterService.split(","); System.out.println(splitArray); }
参考:
本文来自博客园,作者:LeeJuly,转载请注明原文链接:https://www.cnblogs.com/peterleee/p/10615037.html

浙公网安备 33010602011771号