如何實(shí)現(xiàn)自己的spring boot starter
前言
在使用spring boot開發(fā)的時候,我們有時候想要把自己的代碼打包成類似spring-boot-starter-web的樣式來導(dǎo)入到自己的中央倉庫,然后其他項(xiàng)目就可以引用類似springboot那樣的引用了,下面我們就實(shí)現(xiàn)一個類似的項(xiàng)目。
1.新建一個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包來做基礎(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.添加一個可配置的properties類,用于可配置屬性的加載
@ConfigurationProperties(prefix = "com.myboot")
public class MyBootProperties {
/**
* 名稱
*/
private String name;
/**
* 是否啟用
*/
private boolean enable;
....省略get/set方法
}
4.定義一個類來使用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一樣使用呢?那么我們就需要把它定義為一個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
這個是spring的標(biāo)準(zhǔn)格式,spring的加載器會自動去尋找這個文件下的所有配置實(shí)現(xiàn)自動的注入。
通過以上步驟就完成了基本starter的搭建,最后通過maven clean install就可以生成一個jar了在倉庫中,我們可以在另外的項(xiàng)目中像引入springboot相關(guān)的jar引入了。
以上就是本文的全部內(nèi)容,希望對大家的學(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簡介及其優(yōu)劣勢
- SpringBoot封裝自己的Starter的實(shí)現(xiàn)方法
- springboot手寫一個自己的starter源碼
- Spring boot創(chuàng)建自定義starter的完整步驟
相關(guān)文章
Java實(shí)現(xiàn)多路復(fù)用select模型實(shí)例詳解
在計(jì)算機(jī)網(wǎng)絡(luò)中,多路復(fù)用(Multiplexing)指的是通過一種機(jī)制將多個 I/O 操作合并到同一個線程或進(jìn)程中,從而提高系統(tǒng)的效率,在 Java 中,可以使用 Selector 類來實(shí)現(xiàn)基于 I/O 多路復(fù)用的模式,故本文給大家介紹了Java實(shí)現(xiàn)多路復(fù)用select模型實(shí)例,需要的朋友可以參考下2025-03-03
JAVA WEB中Servlet和Servlet容器的區(qū)別
這篇文章主要介紹了JAVA WEB中Servlet和Servlet容器的區(qū)別,文中示例代碼非常詳細(xì),供大家參考和學(xué)習(xí),感興趣的朋友可以了解下2020-06-06
手把手教你使用Java實(shí)現(xiàn)在線生成pdf文檔
在實(shí)際的業(yè)務(wù)開發(fā)的時候,常常會需要把相關(guān)的數(shù)據(jù)信息,通過一些技術(shù)手段生成對應(yīng)的PDF文件,然后返回給用戶。本文將手把手教大家如何利用Java實(shí)現(xiàn)在線生成pdf文檔,需要的可以參考一下2022-03-03
IDEA 集成 Docker 插件一鍵部署 SpringBoot 應(yīng)用
通過本文介紹的方法,我們期望能幫助開發(fā)者更輕松地在IDEA中實(shí)現(xiàn)Spring Boot應(yīng)用的Docker化部署,為現(xiàn)代軟件開發(fā)提供更便捷的解決方案,感興趣的朋友一起看看吧2023-11-11
Mybatis中強(qiáng)大的resultMap功能介紹
這篇文章主要給大家介紹了關(guān)于Mybatis中強(qiáng)大的resultMap功能的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Mybatis具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06

