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

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

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

前言

使用過(guò)SpringBoot的都應(yīng)該知道,一個(gè)SpringBoot 項(xiàng)目就是由一個(gè)一個(gè) Starter 組成的,一個(gè) Starter 代表該項(xiàng)目的 SpringBoot 啟動(dòng)依賴,除了官方已有的 Starter,我們可以根據(jù)自己的需要自定義新的Starter。

一、自定義SpringBoot Starter

自定義Starter,首選需要實(shí)現(xiàn)自動(dòng)化配置,而要實(shí)現(xiàn)自動(dòng)化配置需要滿足以下兩個(gè)條件:

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

(2)能夠根據(jù)項(xiàng)目提供的信息自動(dòng)生成Bean,并且注冊(cè)到Bean管理容器中;

要實(shí)現(xiàn)自動(dòng)化配置需要在項(xiàng)目的pom.xml文件中引入如下依賴:

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

根據(jù)需要自定義Starter的實(shí)現(xiàn)過(guò)程大致如下(以我定義的Starter為例):

工程目錄結(jié)構(gòu):

在這里插入圖片描述

1、引入項(xiàng)目的配置依賴

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

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

代碼: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類,屬性配置類,完成屬性配置相關(guān)的操作,比如設(shè)置屬性前綴,用于在application.properties中配置

代碼:StringProperties.java

//指定項(xiàng)目在屬性文件中配置的前綴為str,即可以在屬性文件中通過(guò) 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類,自動(dòng)配置類,用于完成Bean創(chuàng)建等工作

代碼:StringAutoConfiguration.java

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

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

 @Bean
 // 當(dāng)容器沒(méi)有這個(gè) Bean 的時(shí)候才創(chuàng)建這個(gè) 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啟動(dòng)時(shí)會(huì)根據(jù)此文件來(lái)加載項(xiàng)目的自動(dòng)化配置類

代碼:spring.factories

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

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

二、其他項(xiàng)目中使用自定義的Starter

1、在新項(xiàng)目中引入自定義Starter依賴配置

創(chuàng)建一個(gè)新的SpringBoot項(xiàng)目,在項(xiàng)目的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、編寫(xiě)一個(gè)簡(jiǎn)單的Controller

@RestController
public class StringController {

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

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

3、編寫(xiě)屬性配置文件,內(nèi)容如下:

#配置自定義的屬性信息
str.str1=為什么我的眼里常含淚水
str.str2=那是因?yàn)槲覍?duì)你愛(ài)的深沉

4、啟動(dòng)項(xiàng)目進(jìn)行訪問(wèn),效果如圖:

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

結(jié)語(yǔ):

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

相關(guān)文章

  • IDEA解決springboot熱部署失效問(wèn)題(推薦)

    IDEA解決springboot熱部署失效問(wèn)題(推薦)

    熱部署,就是在應(yīng)用正在運(yùn)行的時(shí)候升級(jí)軟件,卻不需要重新啟動(dòng)應(yīng)用。這篇文章主要介紹了IDEA解決springboot熱部署失效問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Idea如何導(dǎo)入一個(gè)SpringBoot項(xiàng)目的方法(圖文教程)

    Idea如何導(dǎo)入一個(gè)SpringBoot項(xiàng)目的方法(圖文教程)

    這篇文章主要介紹了Idea如何導(dǎo)入一個(gè)SpringBoot項(xiàng)目的方法(圖文教程),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Java提取2個(gè)集合中的相同和不同元素代碼示例

    Java提取2個(gè)集合中的相同和不同元素代碼示例

    這篇文章主要介紹了Java提取2個(gè)集合中的相同和不同元素代碼示例,涉及對(duì)removeall方法的簡(jiǎn)單介紹,然后分享了主要的示例代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-11-11
  • 詳解maven依賴沖突以及解決方法

    詳解maven依賴沖突以及解決方法

    這篇文章主要介紹了maven依賴沖突以及解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Java中ArrayList具體實(shí)現(xiàn)之簡(jiǎn)單的洗牌算法

    Java中ArrayList具體實(shí)現(xiàn)之簡(jiǎn)單的洗牌算法

    這篇文章主要給大家介紹了Java中ArrayList具體實(shí)現(xiàn)之簡(jiǎn)單的洗牌算法,文中通過(guò)代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2024-12-12
  • javaweb配置jsp路徑映射操作

    javaweb配置jsp路徑映射操作

    這篇文章主要介紹了javaweb配置jsp路徑映射操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08
  • Spring?Boot中的max-http-header-size配置方式

    Spring?Boot中的max-http-header-size配置方式

    這篇文章主要介紹了Spring?Boot中的max-http-header-size配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • 關(guān)于idea2022.2?閃退的問(wèn)題

    關(guān)于idea2022.2?閃退的問(wèn)題

    最近更新了idea2022.2版本,這是一個(gè)比較大的軟件版本更迭,下面小編給大家介紹下idea2022.2?閃退的問(wèn)題及解決方法,需要的朋友可以參考下
    2022-08-08
  • 全面解讀Java編程中的內(nèi)部類

    全面解讀Java編程中的內(nèi)部類

    這篇文章主要介紹了Java的內(nèi)部類,包括類成員訪問(wèn)等Java入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-09-09
  • Java探索之string字符串的應(yīng)用代碼示例

    Java探索之string字符串的應(yīng)用代碼示例

    這篇文章主要介紹了Java探索之string字符串的應(yīng)用代碼示例,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-10-10

最新評(píng)論