如何實(shí)現(xiàn)自己的spring boot starter
前言
在使用spring boot開發(fā)的時(shí)候,我們有時(shí)候想要把自己的代碼打包成類似spring-boot-starter-web的樣式來(lái)導(dǎo)入到自己的中央倉(cāng)庫(kù),然后其他項(xiàng)目就可以引用類似springboot那樣的引用了,下面我們就實(shí)現(xiàn)一個(gè)類似的項(xiàng)目。
1.新建一個(gè)spring boot 項(xiàng)目,取名為mybootspringbootstarter,groupId和artifactId如下所示
<groupId>com.my.boot</groupId> <artifactId>myboot-spring-boot-starter</artifactId> <version>1.0-SNAPSHOT</version>
這里需要注意的是為了區(qū)分springboot自己的jar,默認(rèn)規(guī)則的話我們把自己的取名放在spring-boot-starter前面,如上面代碼所示。
2.引入springboot相關(guān)jar包來(lái)做基礎(chǔ)處理
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <version>2.1.3.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-autoconfigure</artifactId> <version>2.1.0.RELEASE</version> </dependency> <!--生成配置文件元數(shù)據(jù)結(jié)構(gòu)--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <version>2.1.2.RELEASE</version> </dependency>
spring-boot-starter是核心包,必須添加。
3.添加一個(gè)可配置的properties類,用于可配置屬性的加載
@ConfigurationProperties(prefix = "com.myboot") public class MyBootProperties { /** * 名稱 */ private String name; /** * 是否啟用 */ private boolean enable; ....省略get/set方法 }
4.定義一個(gè)類來(lái)使用properties類的屬性引用
public class MyService { /** * 名稱 */ private String name; /** * 是否啟用 */ private boolean enable; public String getName() { return name; } public void setName(String name) { this.name = name; } public boolean isEnable() { return enable; } public void setEnable(boolean enable) { this.enable = enable; } public void print(){ System.out.println("name:" + this.name + "----enable:" + this.enable); } }
5.定義好以上類后,我們?nèi)绾蜗馼ean一樣使用呢?那么我們就需要把它定義為一個(gè)bean
@Configuration @EnableConfigurationProperties(MyBootProperties.class) public class MyBootAutoConfiguration { @Bean public MyService myService(MyBootProperties myBootProperties){ MyService myService = new MyService(); myService.setName(myBootProperties.getName()); myService.setEnable(myBootProperties.isEnable()); return myService; } }
6.怎么樣才能在其他架構(gòu)中引入我們定義的bean呢?我們需要在resources/META-INFO下定義spring.factories文件
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ com.my.boot.configure.MyBootAutoConfiguration
這個(gè)是spring的標(biāo)準(zhǔn)格式,spring的加載器會(huì)自動(dòng)去尋找這個(gè)文件下的所有配置實(shí)現(xiàn)自動(dòng)的注入。
通過(guò)以上步驟就完成了基本starter的搭建,最后通過(guò)maven clean install就可以生成一個(gè)jar了在倉(cāng)庫(kù)中,我們可以在另外的項(xiàng)目中像引入springboot相關(guān)的jar引入了。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- spring boot 自定義starter的實(shí)現(xiàn)教程
- Spring Boot 自定義starter的示例代碼
- SpringBoot自定義starter實(shí)例代碼
- springboot自定義Starter的具體流程
- 深入淺析Spring-boot-starter常用依賴模塊
- 深入淺析 Spring Boot Starter
- Spring Boot Starters簡(jiǎn)介及其優(yōu)劣勢(shì)
- SpringBoot封裝自己的Starter的實(shí)現(xiàn)方法
- springboot手寫一個(gè)自己的starter源碼
- Spring boot創(chuàng)建自定義starter的完整步驟
相關(guān)文章
詳解多云架構(gòu)下的JAVA微服務(wù)技術(shù)解析
本文介紹了基于開源自建和適配云廠商開發(fā)框架兩種構(gòu)建多云架構(gòu)的思路,以及這些思路的優(yōu)缺點(diǎn)2021-05-05@PathVariable注解,讓spring支持參數(shù)帶值功能的案例
這篇文章主要介紹了@PathVariable注解,讓spring支持參數(shù)帶值功能的案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02Java中的動(dòng)態(tài)和靜態(tài)編譯實(shí)例詳解
這篇文章主要介紹了Java中的動(dòng)態(tài)和靜態(tài)編譯實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-04-04spring mvc 實(shí)現(xiàn)獲取后端傳遞的值操作示例
這篇文章主要介紹了spring mvc 實(shí)現(xiàn)獲取后端傳遞的值操作,結(jié)合實(shí)例形式詳細(xì)分析了spring mvc使用JSTL 方法獲取后端傳遞的值相關(guān)操作技巧2019-11-11