SpringBoot编写自定义Starter
Posted brx_blog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot编写自定义Starter相关的知识,希望对你有一定的参考价值。
根据SpringBoot的Starter编写规则,需要编写xxxStarter依赖xxxAutoConfigurer,xxxStarter是一个空的jar,仅提供辅助性的依赖管理,引入其他类库
1.建立一个empty工程,建立一个普通maven模块xxxStarter,建立一个SpringBoot模块xxxAutoConfigurer,前者依赖后者
2.xxxAutoConfigurer:
新建:HelloService:
public class HelloService { private HelloProperties helloProperties; public void setHelloProperties(HelloProperties helloProperties) { this.helloProperties = helloProperties; } public HelloProperties getHelloProperties() { return helloProperties; } public String hello(){ return StringFormatter.format("%s:你好,%s欢迎光临",helloProperties.getWeekend(),helloProperties.getName()).getValue(); } }
新疆:HelloProperties类
@ConfigurationProperties(prefix = "brx") public class HelloProperties { private String weekend; private String name; public String getWeekend() { return weekend; } public void setWeekend(String weekend) { this.weekend = weekend; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
新建:将启动类修改为一个配置类,并去除pom.xml中的maven插件
@Configuration @EnableConfigurationProperties(HelloProperties.class)//只有在web上下文才起作用 @ConditionalOnWebApplication public class BrxautoconfigApplication { @Autowired HelloProperties helloProperties; @Bean HelloService helloService(){ HelloService helloService = new HelloService(); helloService.setHelloProperties(helloProperties); return helloService; } }
新建:META-INF/spring.factories:
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\\
com.brx.demo.brxautoconfig.BrxautoconfigApplication
3.将starter和Autocofigure项目install到本地仓库
4.新建一个普通web项目,并添加xxxStarter库,并在application.properties添加:
brx.weekend="周一"
brx.name="白gg"
个人感觉:starter的意义就是把一些内部公用的代码抽成starter,共其他项目引入,并提供自动配置等功能
以上是关于SpringBoot编写自定义Starter的主要内容,如果未能解决你的问题,请参考以下文章