欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Springboot3自定義starter業(yè)務(wù)代碼

 更新時(shí)間:2025年05月17日 10:47:39   作者:z542968z  
在Spring?Boot中,starter是一種特殊的依賴,它可以幫助開發(fā)人員快速引入和配置某個(gè)特定的功能模塊,這篇文章給大家介紹Springboot3自定義starter業(yè)務(wù)代碼的相關(guān)知識(shí),感興趣的朋友跟隨小編一起看看吧

場景:抽取聊天機(jī)器人場景,它可以打招呼。 效果:任何項(xiàng)目導(dǎo)入此 starter
都具有打招呼功能,并且問候語中的人名需要可以在配置文件中修改。

創(chuàng)建自定義 starter 項(xiàng)目,引入 spring-boot-starter 基礎(chǔ)依賴。

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

編寫模塊功能,引入模塊所有需要的依賴。編寫 xxxAutoConfiguration 自動(dòng)配置類,幫其他項(xiàng)目導(dǎo)入這個(gè)模塊需要的所有組件。編寫配置文件 META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports指定啟動(dòng)需要加載的自動(dòng)配置。其他項(xiàng)目引入即可使用

業(yè)務(wù)代碼

@Service
public class RobotService {
    @Autowired
    RobotProperties robotProperties;
    public String sayHello(){
        return "hello"+robotProperties.getName()+":"+robotProperties.getAge()+"郵箱"+robotProperties.getEmail();
    }
}

寫下面代碼為了進(jìn)行屬性綁定,配置文件(application.properties)配了什么屬性項(xiàng)這個(gè)類里面都可以直接進(jìn)行綁定關(guān)聯(lián)(在配置文件中寫的數(shù)據(jù)通過這個(gè)配置文件,在業(yè)務(wù)代碼中引入RobotProperties robotProperties并進(jìn)行自動(dòng)注入,就會(huì)通過這個(gè)來獲取配置文件中的屬性)

@ConfigurationProperties(prefix = "robot")
@Component
@Data
public class RobotProperties {
    private String name;
    private String age;
    private String email;
}
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>

基本抽取

創(chuàng)建starter項(xiàng)?,把公共代碼需要的所有依賴導(dǎo)? 把公共代碼復(fù)制進(jìn)來

不選場景

引入需要的web包

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>

刪除主程序類

在新項(xiàng)目中導(dǎo)入該starter

??寫?個(gè) RobotAutoConfiguration ,給容器中導(dǎo)?這個(gè)場景需要的所有組件
為什么這些組件默認(rèn)不會(huì)掃描進(jìn)去?
starter所在的包和 引?它的項(xiàng)?的主程序所在的包不是??層級(jí)

別?引?這個(gè) starter ,直接導(dǎo)?這個(gè) RobotAutoConfiguration ,就能把這個(gè)場景的組件導(dǎo)?進(jìn)來 使用@EnableXxx機(jī)制

完全自動(dòng)配置

  • 依賴SpringBoot的SPI機(jī)制
  • META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
    ?件中編寫好我們?動(dòng)配置類的全類名即可
  • 項(xiàng)?啟動(dòng),?動(dòng)加載我們的?動(dòng)配置類

到此這篇關(guān)于Springboot3自定義starter業(yè)務(wù)代碼的文章就介紹到這了,更多相關(guān)Springboot3自定義starter內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java用split分割字符串的一個(gè)有趣現(xiàn)象

    java用split分割字符串的一個(gè)有趣現(xiàn)象

    最近在項(xiàng)目中使用了java中的split分割字符串,發(fā)現(xiàn)了一個(gè)bug,充分了展示了自己對(duì)java底層的認(rèn)知有很多的不足和欠缺。下面將這次的經(jīng)過總結(jié)出來分享給大家,有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2016-12-12
  • SpringBoot集成RocketMQ發(fā)送事務(wù)消息的原理解析

    SpringBoot集成RocketMQ發(fā)送事務(wù)消息的原理解析

    RocketMQ 的事務(wù)消息提供類似 X/Open XA 的分布事務(wù)功能,通過事務(wù)消息能達(dá)到分布式事務(wù)的最終一致,這篇文章主要介紹了SpringBoot集成RocketMQ發(fā)送事務(wù)消息,需要的朋友可以參考下
    2022-06-06
  • springboot+maven多環(huán)境動(dòng)態(tài)配置及編譯失敗的解決方案(步驟詳解)

    springboot+maven多環(huán)境動(dòng)態(tài)配置及編譯失敗的解決方案(步驟詳解)

    這篇文章主要介紹了springboot+maven多環(huán)境動(dòng)態(tài)配置及編譯失敗的解決方案,本文通過實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-11-11
  • Java中讀取YAML文件配置信息常見問題及解決方法

    Java中讀取YAML文件配置信息常見問題及解決方法

    這篇文章主要介紹了Java中讀取YAML文件配置信息常見問題及解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2025-07-07
  • Spring核心思想之淺談IoC容器與依賴倒置(DI)

    Spring核心思想之淺談IoC容器與依賴倒置(DI)

    文章介紹了Spring的IoC和DI機(jī)制,以及MyBatis的動(dòng)態(tài)代理,通過注解和反射,Spring能夠自動(dòng)管理對(duì)象的創(chuàng)建和依賴注入,而MyBatis則通過動(dòng)態(tài)代理實(shí)現(xiàn)了接口方法到數(shù)據(jù)庫操作的映射,文章詳細(xì)解釋了Spring和MyBatis的工作原理,并通過示例代碼展示了它們的結(jié)合使用方式
    2025-01-01
  • Java中多媒體文件上傳及頁面回顯的操作代碼

    Java中多媒體文件上傳及頁面回顯的操作代碼

    這篇文章主要介紹了Java中多媒體文件上傳及頁面回顯的操作代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Java設(shè)置Excel頁面的配置指南

    Java設(shè)置Excel頁面的配置指南

    本指南將深入探討如何在Java代碼中精細(xì)化控制Excel的頁面設(shè)置,幫助你告別打印噩夢(mèng),輕松打造出媲美手動(dòng)操作的專業(yè)級(jí)報(bào)表,快跟隨小編一起學(xué)習(xí)一下吧
    2025-10-10
  • idea resources目錄下的application.properties不能自動(dòng)提示問題

    idea resources目錄下的application.properties不能自動(dòng)提示問題

    這篇文章主要介紹了idea resources目錄下的application.properties不能自動(dòng)提示問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Java解決線程安全的兩種方式分享

    Java解決線程安全的兩種方式分享

    這篇文章主要為大家詳細(xì)介紹了Java中兩種常用的解決線程安全的方式——Synchornized和Lock,文中的示例代碼簡潔易懂,快跟隨小編一起學(xué)習(xí)起來吧
    2023-06-06
  • 使用Java提取PDF中的文字的三種常見方法

    使用Java提取PDF中的文字的三種常見方法

    這篇文章主要介紹了Java中提取PDF文本的三種方法:ApachePDFBox(普通PDF,輕量易用)、iText(復(fù)雜格式,功能強(qiáng)大)、TesseractOCR(掃描版,需OCR識(shí)別),并給出各場景下的推薦選擇,需要的朋友可以參考下
    2025-06-06

最新評(píng)論