SpringBoot自定義Starter實(shí)現(xiàn)流程詳解
starter起步依賴
starter起步依賴是springboot一種非常重要的機(jī)制,
它打包了某些場(chǎng)景下需要用到依賴,將其統(tǒng)一集成到starter,
比如,
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
這就是一個(gè)starter,你可以把它看做一個(gè)外部外部項(xiàng)目,注意:是外部項(xiàng)目。
starter命名規(guī)則
springboot提供的starter以spring-boot-starter-x的方式命名,
自定義starter以x-spring-boot-starter的方式命名,
以區(qū)分springboot生態(tài)提供的starter。
自定義starter
new module
mystarter-spring-boot-starter
maven項(xiàng)目
添加依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-autoconfigure</artifactId> <version>2.2.9.RELEASE</version> </dependency>
load maven changes
simplebean
package com.duohoob.bean; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.context.properties.ConfigurationProperties; /** * 這兩個(gè)都是非@Component注解, * 否則springboot啟動(dòng)時(shí)會(huì)直接被加載進(jìn)spring容器 */ @EnableAutoConfiguration @ConfigurationProperties(prefix = "simplebean") public class SimpleBean { private String id; private String name; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "SimpleBean{" + "id='" + id + '\'' + ", name='" + name + '\'' + '}'; } }
自動(dòng)配置類(lèi)
package com.duohoob.config; import com.duohoob.bean.SimpleBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class MyAutoConfiguration { @Bean public SimpleBean simpleBean() { return new SimpleBean(); } }
META-INF\spring.factories
在resources下創(chuàng)建META-INF\spring.factories
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.duohoob.config.MyAutoConfiguration
在spring-boot-mytest中引入mystarter-spring-boot-starter
<dependency> <groupId>com.duohoob</groupId> <artifactId>mystarter-spring-boot-starter</artifactId> <version>1.0-SNAPSHOT</version> </dependency>
load maven changes
添加配置
在spring-boot-mytest的src/main/resources/application.properties中添加配置
通過(guò)@Autowired引用
package com.duohoob.springbootmytest.controller; import com.duohoob.bean.SimpleBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class TestController { @Autowired private SimpleBean simplebean; @RequestMapping("/test") public String test() { return simplebean.toString(); } }
啟動(dòng)訪問(wèn)
到此這篇關(guān)于SpringBoot自定義Starter實(shí)現(xiàn)流程詳解的文章就介紹到這了,更多相關(guān)SpringBoot自定義Starter內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解springboot通過(guò)Async注解實(shí)現(xiàn)異步任務(wù)及回調(diào)的方法
這篇文章主要介紹了springboot通過(guò)Async注解實(shí)現(xiàn)異步任務(wù)及回調(diào),文中通過(guò)一個(gè)簡(jiǎn)單示例來(lái)直觀的理解什么是同步調(diào)用,在單元測(cè)試用例中,注入?SyncTask?對(duì)象,并在測(cè)試用例中執(zhí)行?doTaskOne(),doTaskTwo(),doTaskThree()?三個(gè)方法,具體實(shí)現(xiàn)方式跟隨小編一起看看吧2022-05-05linux中nohup?java?-jar啟動(dòng)java項(xiàng)目的步驟
nohup是一個(gè)Unix和Linux命令,用于運(yùn)行關(guān)閉時(shí)不會(huì)被終止的進(jìn)程,這篇文章主要給大家介紹了關(guān)于linux中nohup?java?-jar啟動(dòng)java項(xiàng)目的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-08-08Java實(shí)現(xiàn)簡(jiǎn)單通訊錄管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)簡(jiǎn)單通訊錄管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07Java使用PreparedStatement接口及ResultSet結(jié)果集的方法示例
這篇文章主要介紹了Java使用PreparedStatement接口及ResultSet結(jié)果集的方法,結(jié)合實(shí)例形式分析了PreparedStatement接口及ResultSet結(jié)果集的相關(guān)使用方法與操作注意事項(xiàng),需要的朋友可以參考下2018-07-07java中實(shí)現(xiàn)分頁(yè)的幾種常見(jiàn)方式總結(jié)
在項(xiàng)目中經(jīng)常會(huì)查詢大量數(shù)據(jù),這就要用到分頁(yè)展示,下面這篇文章主要給大家介紹了關(guān)于java中實(shí)現(xiàn)分頁(yè)的幾種常見(jiàn)方式,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12springboot使用redisRepository和redistemplate操作redis的過(guò)程解析
本文給大家介紹springboot整合redis/分別用redisRepository和redistemplate操作redis,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2022-05-05Java靜態(tài)內(nèi)部類(lèi)實(shí)現(xiàn)單例過(guò)程
這篇文章主要介紹了Java靜態(tài)內(nèi)部類(lèi)實(shí)現(xiàn)單例過(guò)程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10