最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用SpringBoot自定義starter的完整步驟

 更新時間:2020年10月25日 16:18:36   作者:耶亞希  
這篇文章主要給大家介紹了關于使用SpringBoot自定義starter的完整步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

前言

使用過SpringBoot的都應該知道,一個SpringBoot 項目就是由一個一個 Starter 組成的,一個 Starter 代表該項目的 SpringBoot 啟動依賴,除了官方已有的 Starter,我們可以根據自己的需要自定義新的Starter。

一、自定義SpringBoot Starter

自定義Starter,首選需要實現自動化配置,而要實現自動化配置需要滿足以下兩個條件:

(1)能夠自動配置項目所需要的配置信息,也就是自動加載依賴環(huán)境;

(2)能夠根據項目提供的信息自動生成Bean,并且注冊到Bean管理容器中;

要實現自動化配置需要在項目的pom.xml文件中引入如下依賴:

<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-autoconfigure</artifactId>
 <version>2.1.4.RELEASE</version>
</dependency>

根據需要自定義Starter的實現過程大致如下(以我定義的Starter為例):

工程目錄結構:

在這里插入圖片描述

1、引入項目的配置依賴

<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-autoconfigure</artifactId>
 <version>2.1.4.RELEASE</version>
</dependency>

2、創(chuàng)建xxxService類,完成相關的操作邏輯

代碼:StringService.java

public class StringService {

 private String str1;

 private String str2;

 private String default_str;

 public String getStr1() {
  return str1;
 }

 public void setStr1(String str1) {
  this.str1 = str1;
 }

 public String getStr2() {
  return str2;
 }

 public void setStr2(String str2) {
  this.str2 = str2;
 }

 public String getDefault_str() {
  return default_str;
 }

 public void setDefault_str(String default_str) {
  this.default_str = default_str;
 }

 public String addStr(){
  if(str1 != null){
   if(str2 != null){
    return str1 + "," + str2;
   }
   return str1;
  }
  return default_str;
 }

}

3、 定義xxxProperties類,屬性配置類,完成屬性配置相關的操作,比如設置屬性前綴,用于在application.properties中配置

代碼:StringProperties.java

//指定項目在屬性文件中配置的前綴為str,即可以在屬性文件中通過 str.str1=springboot,就可以改變屬性類字段 str1 的值了
@SuppressWarnings("ConfigurationProperties")
@ConfigurationProperties(prefix = "str")
public class StringProperties {

 public static final String DEFAULT_STR1 = "I know, you need me";

 public static final String DEFAULT_STR2 = "but I also need you";

 private String str1 = DEFAULT_STR1;

 private String str2 = DEFAULT_STR2;

 public String getStr1() {
  return str1;
 }

 public void setStr1(String str1) {
  this.str1 = str1;
 }

 public String getStr2() {
  return str2;
 }

 public void setStr2(String str2) {
  this.str2 = str2;
 }
}

4、定義xxxConfigurationProperties類,自動配置類,用于完成Bean創(chuàng)建等工作

代碼:StringAutoConfiguration.java

// 定義 java 配置類
@Configuration
//引入StringService
@ConditionalOnClass({StringService.class})
// 將 application.properties 的相關的屬性字段與該類一一對應,并生成 Bean
@EnableConfigurationProperties(StringProperties.class)
public class StringAutoConfiguration {

 // 注入屬性類
 @Autowired
 private StringProperties stringProperties;

 @Bean
 // 當容器沒有這個 Bean 的時候才創(chuàng)建這個 Bean
 @ConditionalOnMissingBean(StringService.class)
 public StringService helloworldService() {
  StringService stringService = new StringService();
  stringService.setStr1(stringProperties.getStr1());
  stringService.setStr2(stringProperties.getStr2());
  return stringService;
 }

}

5、在resources下創(chuàng)建目錄META-INF,在 META-INF 目錄下創(chuàng)建 spring.factories,在SpringBoot啟動時會根據此文件來加載項目的自動化配置類

代碼:spring.factories

# Auto Configure
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.lhf.springboot.config.StringAutoConfiguration

6、到這里自定義Starter就定義完成了,只需在其他項目中引入即可使用。

二、其他項目中使用自定義的Starter

1、在新項目中引入自定義Starter依賴配置

創(chuàng)建一個新的SpringBoot項目,在項目的pom.xml文件中引入自定義SpringBoot Starter的依賴配置如下:

<!--引入自定義Starter-->
<dependency>
 <groupId>com.lhf.springboot</groupId>
 <artifactId>spring-boot-starter-string</artifactId>
 <version>0.0.1-SNAPSHOT</version>
</dependency>

2、編寫一個簡單的Controller

@RestController
public class StringController {

  @Autowired
 private StringService stringService; //引入自定義Starter中的StringService

 @RequestMapping("/")
  public String addString(){
  return stringService.addStr();
 }
}

3、編寫屬性配置文件,內容如下:

#配置自定義的屬性信息
str.str1=為什么我的眼里常含淚水
str.str2=那是因為我對你愛的深沉

4、啟動項目進行訪問,效果如圖:

在這里插入圖片描述
在這里插入圖片描述

結語:

到此這篇關于使用SpringBoot自定義starter的文章就介紹到這了,更多相關SpringBoot自定義starter內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java Arrays工具類用法詳解

    Java Arrays工具類用法詳解

    這篇文章主要介紹了Java Arrays工具類用法,結合實例形式分析了java Arrays工具類針對數組元素修改、復制、排序等操作使用技巧與相關注意事項,需要的朋友可以參考下
    2019-05-05
  • SpringBoot application.yml配置文件使用及說明

    SpringBoot application.yml配置文件使用及說明

    本文詳細介紹了SpringBoot application.yml 配置文件的使用和配置項,包括創(chuàng)建 application.yml 文件、配置數據源、數據庫、緩存、郵件服務等,適合希望深入了解SpringBoot配置文件的開發(fā)者閱讀
    2025-12-12
  • Java中@InitBinder注解的使用原理詳解

    Java中@InitBinder注解的使用原理詳解

    這篇文章主要介紹了Java中@InitBinder注解的使用原理詳解,在Java中,@InitBinder 注解是用于標記一個方法,該方法將在控制器(Controller)處理請求之前被調用,用于進行一些數據綁定和預處理的操作,需要的朋友可以參考下
    2023-10-10
  • java求最大公約數與最小公倍數的方法示例

    java求最大公約數與最小公倍數的方法示例

    這篇文章主要介紹了java求最大公約數與最小公倍數的方法,涉及java數值運算的相關操作技巧,并附帶分析了eclipse環(huán)境下設置運行輸入參數的相關操作技巧,需要的朋友可以參考下
    2017-11-11
  • jedispool連redis高并發(fā)卡死的問題

    jedispool連redis高并發(fā)卡死的問題

    本篇文章主要介紹了jedispool連redis高并發(fā)卡死的問題,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • java使用內存數據庫ssdb的步驟

    java使用內存數據庫ssdb的步驟

    這篇文章主要介紹了java使用內存數據庫ssdb的步驟,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-12-12
  • 詳解java實現簡單掃碼登錄功能(模仿微信網頁版掃碼)

    詳解java實現簡單掃碼登錄功能(模仿微信網頁版掃碼)

    這篇文章主要介紹了java實現簡單掃碼登錄功能(模仿微信網頁版掃碼),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-05-05
  • 使用IDEA搭建SSM框架的詳細教程(spring + springMVC +MyBatis)

    使用IDEA搭建SSM框架的詳細教程(spring + springMVC +MyBatis)

    這篇文章主要介紹了使用IDEA搭建SSM框架的詳細教程 spring + springMVC +MyBatis,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • Java設計模式之Adapter適配器模式

    Java設計模式之Adapter適配器模式

    這篇文章主要為大家詳細介紹了Java設計模式之Adapter適配器模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Java集合WeakHashMap源碼分析

    Java集合WeakHashMap源碼分析

    這篇文章主要介紹了Java集合WeakHashMap源碼分析,和HashMap一樣,WeakHashMap 也是一個散列表,它存儲的內容也是鍵值對(key-value)映射,而且鍵和值都可以是null,需要的朋友可以參考下
    2023-09-09

最新評論

十堰市| 濮阳市| 广河县| 增城市| 芜湖市| 凤冈县| 万州区| 景德镇市| 同江市| 兴安盟| 长沙市| 高安市| 阿拉善左旗| 仪陇县| 长汀县| 确山县| 永仁县| 九江县| 皮山县| 灵武市| 柳林县| 宁波市| 都安| 嵩明县| 囊谦县| 平凉市| 镇巴县| 镇远县| 宽城| 永昌县| 黔江区| 汶上县| 韶关市| 临海市| 鹤岗市| 将乐县| 嘉鱼县| 眉山市| 汝城县| 交口县| 衡水市|