创建自己的Spring Boot Starter
抽取通用模块作为项目的一个spring boot starter。可参照mybatis的写法。
IDEA创建Empty Project并添加如下2个module,一个基本maven模块,另一个引入spring-boot-starter依赖。
1) xxx-spring-boot-starter - 引入依赖并管理依赖版本
demo-spring-boot-starter
<dependencies>
<dependency>
<groupId>org.chris</groupId>
<artifactId>demo-spring-boot-autoconfigure</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
2) xxx-spring-boot-autoconfigure - xxx的自动配置类
demo-spring-boot-autoconfigure
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
</dependencies>
属性类DemoProperties
@ConfigurationProperties(prefix = "chris.demo")
public class DemoProperties {
private String name;
private String content; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getContent() {
return content;
} public void setContent(String content) {
this.content = content;
}
}
功能类DemoService
public class DemoService {
private DemoProperties demoProperties;
public DemoProperties getDemoProperties() {
return demoProperties;
}
public void setDemoProperties(DemoProperties demoProperties) {
this.demoProperties = demoProperties;
}
public String demoShow(){
return this.demoProperties.getName() + " ----- " + this.demoProperties.getContent();
}
}
自动配置类DemoAutoConfiguration
@Configuration
@ConditionalOnWebApplication
@EnableConfigurationProperties(DemoProperties.class)
public class DemoAutoConfiguration { @Autowired
private DemoProperties demoProperties; @Bean
public DemoService demoService(){
DemoService demoService = new DemoService();
demoService.setDemoProperties(demoProperties);
return demoService;
}
}
最后添加DemoAutoConfiguration到EnableAutoConfiguration中

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
org.chris.springboot.DemoAutoConfiguration
在新的spring boot项目中如果需要引用以上starter,只需要在依赖中添加如下,
<dependency>
<groupId>org.chris</groupId>
<artifactId>demo-spring-boot-starter</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
测试类DemoController
@RestController
public class DemoController { @Autowired
private DemoService demoService; @GetMapping("demo")
public String demo(){
return demoService.demoShow();
}
}
附上代码
创建自己的Spring Boot Starter的更多相关文章
- Spring Boot Starter 介绍
http://www.baeldung.com/spring-boot-starters 作者:baeldung 译者:http://oopsguy.com 1.概述 依赖管理是任何复杂项目的关键部分 ...
- Spring Boot (一): Spring Boot starter自定义
前些日子在公司接触了spring boot和spring cloud,有感于其大大简化了spring的配置过程,十分方便使用者快速构建项目,而且拥有丰富的starter供开发者使用.但是由于其自动化配 ...
- 自定义的Spring Boot starter如何设置自动配置注解
本文首发于个人网站: 在Spring Boot实战之定制自己的starter一文最后提到,触发Spring Boot的配置过程有两种方法: spring.factories:由Spring Boot触 ...
- 手把手教你定制标准Spring Boot starter,真的很清晰
写在前面 我们每次构建一个 Spring 应用程序时,我们都不希望从头开始实现具有「横切关注点」的内容:相反,我们希望一次性实现这些功能,并根据需要将它们包含到任何我们要构建的应用程序中 横切关注点 ...
- 年轻人的第一个自定义 Spring Boot Starter!
陆陆续续,零零散散,栈长已经写了几十篇 Spring Boot 系列文章了,其中有介绍到 Spring Boot Starters 启动器,使用的.介绍的都是第三方的 Starters ,那如何开发一 ...
- 从零开始开发一个Spring Boot Starter
一.Spring Boot Starter简介 Starter是Spring Boot中的一个非常重要的概念,Starter相当于模块,它能将模块所需的依赖整合起来并对模块内的Bean根据环境( 条件 ...
- 一个简单易上手的短信服务Spring Boot Starter
前言 短信服务在用户注册.登录.找回密码等相关操作中,可以让用户使用更加便捷,越来越多的公司都采用短信验证的方式让用户进行操作,从而提高用户的实用性. Spring Boot Starter 由于 S ...
- 最详细的自定义Spring Boot Starter开发教程
1. 前言 随着Spring的日渐臃肿,为了简化配置.开箱即用.快速集成,Spring Boot 横空出世. 目前已经成为 Java 目前最火热的框架了.平常我们用Spring Boot开发web应用 ...
- Spring Boot Starter 开发指南
Spring Boot Starter是什么? 依赖管理是任何复杂项目的关键部分.以手动的方式来实现依赖管理不太现实,你得花更多时间,同时你在项目的其他重要方面能付出的时间就会变得越少. Spring ...
随机推荐
- N皇后问题(C++实现和函数式编程实现)
题意 在 N * N 的方格棋盘放置了 N 个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上.求出有多少种合法的放置方法. C++实现(位运算 ...
- .Net解析html文档类库HtmlAgilityPack完整使用说明
在前几篇文章中([搜房网房产数据采集程序demo--GeckoWebBrowser实例] )都有提到一个解析html的C#类库HtmlAgilityPack, 今天终于有时间整理一下,并把Demo分享 ...
- ArcMAP定义投影坐标
WGS84形式的高斯克吕格投影在ArcGIS系统中是不存在的,需要自己去定义.下面为MARK的定义过程.
- Multithreading and Grand Central Dispatch on iOS for Beginners Tutorial
Have you ever written an app where you tried to do something, and there was a long pause while the U ...
- Visual Studio Debug和Release的区别及obj的作用
一.Debug和Release的区别 1.Debug:调试版本,包含调试信息,所以容量比Release大很多,并且不进行任何优化(优化会使调试复杂化,因为源代码和生成的指令间关系会更复杂), ...
- Maven配置Spring+Hibernate Shiro权限控制项目
前言:在Eclipse中安装好Maven插件,然后创建一个Sample项目.在Eclipse中检出Shiro的官方演示样例.地址http://svn.apache.org/repos/asf/shir ...
- nginx $document_uri 参数使用
$document_uri 表示访问的url 现在我的需求是,访问 www.abc.com 请求到 www.abc.com/abc/在nginx配置文件中加入 if ($document_uri ...
- 《Linux性能及调优指南》----1.1 Linux进程管理
翻译:飞哥 ( http://hi.baidu.com/imlidapeng ) 版权所有,尊重他人劳动成果,转载时请注明作者和原始出处及本声明. 原文名称:<Linux Performance ...
- ZeroMQ使用学习记录(转)
ZMQ简介 ZMQ(ØMQ.ZeroMQ, 0MQ)看起来像是一套嵌入式的网络链接库,但工作起来更像是一个并发式的框架.它提供的套接字可以在多种协议中传输消息,如线程间.进程间.TCP.广播等.你可以 ...
- ES6里关于模板字面量的拓展
JS 的字符串相对其他语言来说功能总是有限的,事实上,ES5中一直缺乏许多特性,如多行字符串.字符串格式化.HTML转义等.ES6通过模板字面量的方式进行了填补,模板字面量试着跳出JS已有的字符串体系 ...