您现在的位置是:首页 > 文章详情

精通SpringBoot——第五篇:写一个spring-boot-starter包

日期:2018-07-24点击:511

为了能更好的理解Springboot的自动配置和工作原理,我们今天来手写一个spring-boot-hello-starter。这个过程很简单,代码不多。接下来我们看看怎么开始实践。

1. 新建maven工程。

这块就不演示了,如果不会可以自行百度...啦啦啦,因为太简单了啊

2.新建一个properties类

/** * @author Lee * @// TODO 2018/7/25-9:21 * @description */ @ConfigurationProperties(prefix = "customer") public class CustomerProperties { private static final String DEFAULT_NAME = "Lensen"; private String name = DEFAULT_NAME; public String getName() { return name; } public void setName(String name) { this.name = name; } }

2.创建一个服务类CustomerService

/** * @author Lee * @// TODO 2018/7/25-10:30 * @description */ public class CustomerService { private String name; public String findCustomer(){ return "The Customer is " + name; } public String getName() { return name; } public void setName(String name) { this.name = name; } }

3.AutoConfiguration类

/** * @author Lee * @// TODO 2018/7/25-10:32 * @description */ @Configuration @EnableConfigurationProperties(CustomerProperties.class) @ConditionalOnClass(CustomerService.class) @ConditionalOnProperty(prefix = "customer", value = "enabled", matchIfMissing = true) public class CustomerAutoConfiguration { @Autowired private CustomerProperties customerProperties; @Bean @ConditionalOnMissingBean(CustomerService.class) public CustomerService customerService() { CustomerService customerService = new CustomerService(); customerService.setName(customerProperties.getName()); return customerService; } }

4. spring.factories配置

在src/main/resources新建文件夹META-INF,然后新建一个spring.factories文件

 org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ com.developlee.configurer.CustomerAutoConfiguration

pom文件修改artifactId为spring-boot-hello-starter 打包成jar. 然后用mvn install 安装到本地mvn仓库。

5. 测试spring-boot-hello-start

新建springboot工程,在pom.xml文件引入安装的jar包

 <dependency> <groupId>com.developlee</groupId> <artifactId>spring-boot-hello-starter</artifactId> <version>1.0-SNAPSHOT</version> </dependency>

在项目启动类中直接做测试:

@SpringBootApplication @RestController public class TestStarterApplication { @Autowired CustomerService customerService; @GetMapping("/") public String index(){ return customerService.getName(); } public static void main(String[] args) { SpringApplication.run(TestStarterApplication.class, args); } }

application.properties文件配置下我们的customer.name

customer.name = BigBBrother

接下来启动项目,请求地址localhost:8080,即可看到页面上显示BigBBrother

到这我们已经完成了一个spring-boot-starter jar包的开发,有很多功能我们可以自己封装成一个jar,以后要用直接引用就行了~ 这样写代码是不是会有不一样的体验呢?

最后,以上示例代码可在我的github.com中找到。
我的个人公众号:developlee的潇洒人生。
关注了也不一定更新,更新就不得了了。
qrcode_for_gh_2bd3f44efa21_258

原文链接:https://yq.aliyun.com/articles/618581
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章