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

SpringBoot從yml配置文件中讀常用參數(shù)值實(shí)例方法

 更新時(shí)間:2019年12月02日 08:19:56   作者:菜弟弟  
在本篇文章里小編給大家整理了關(guān)于SpringBoot從yml配置文件中讀常用參數(shù)值實(shí)例方法,有需要的朋友們學(xué)習(xí)下。

SpringBoot現(xiàn)在基本上都是使用application-XXX.yml(生產(chǎn)環(huán)境為pro,開(kāi)發(fā)測(cè)試環(huán)境為dev)來(lái)配置項(xiàng)目中的一些配置條件,在springboot中還可以通過(guò)從yml文件中將yml中的數(shù)據(jù)直接讀取出來(lái)。

1.yml文件(這里設(shè)置參數(shù)的時(shí)候往往設(shè)置兩層前綴,避免在調(diào)用的時(shí)候該屬性中的部分參數(shù)名與計(jì)算機(jī)中的某些名字沖突)

test:
 person:
  lastName: hello
  age: 18
  boss: false
  birth: 2017/12/12
  maps: {k1: v1,k2: 12}
  lists:
   - lisi
   - zhaoliu
  dog:
   name: 小狗
   age: 12

2.在JavaBean中讀取參數(shù)值,并且將讀取出來(lái)的值賦予到指定的屬性上

/**
 * 將配置文件中配置的每一個(gè)屬性的值,映射到這個(gè)組件中
 * @ConfigurationProperties:告訴SpringBoot將本類(lèi)中的所有屬性和配置文件中相關(guān)的配置進(jìn)行綁定;
 *   prefix = "testdemo.person":配置文件中哪個(gè)下面的所有屬性進(jìn)行一一映射(yml文件中的參數(shù)名要和JavaBean中的屬性名保持一致)
 *
 * 只有這個(gè)組件是容器中的組件,才能容器提供的@ConfigurationProperties功能;
 *
 */
@Component
@ConfigurationProperties(prefix = "testdemo.person")
public class Person {

  private String lastName;
  private Integer age;
  private Boolean boss;
  private Date birth;

  private Map<String,Object> maps;
  private List<Object> lists;
  private Dog dog;
}

 3.pom.xml文件中導(dǎo)入依賴配置(注:這里可能需要啟動(dòng)一下項(xiàng)目,使之生效)

<!--導(dǎo)入配置文件處理器,配置文件進(jìn)行綁定就會(huì)有提示-->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-configuration-processor</artifactId>
      <optional>true</optional>
    </dependency>

4.@value 注解獲取yml配置文件中的數(shù)據(jù),以及@Validated進(jìn)行數(shù)據(jù)校驗(yàn)

@Component
@Validated
public class Person {

  /**
   * <bean class="Person">
   *   <property name="lastName" value="字面量/${key}從環(huán)境變量、配置文件中獲取值/#{SpEL}"></property>   * <bean/>
   */

  //lastName必須是郵箱格式
  @Email
  @Value("${person.last-name}")
  private String lastName;
  @Value("#{11*2}")
  private Integer age;
  @Value("true")
  private Boolean boss;

  private Date birth;
  private Map<String,Object> maps;
  private List<Object> lists;
  private Dog dog;

5.@ConfigurationProperties(prefix = "person") 和 @value的區(qū)別

|          | @ConfigurationProperties       | @Value |
| ----------          |------------------------          | ------ |
| 功能         | 批量注入配置文件中的屬性    | 一個(gè)個(gè)指定 |
| 松散綁定(松散語(yǔ)法)   | 支持           | 不支持 |
| SpEL          | 不支持          | 支持 |
| JSR303數(shù)據(jù)校驗(yàn)     | 支持           | 不支持 |
| 復(fù)雜類(lèi)型封裝       | 支持           | 不支持 |

6.總結(jié)

配置文件yml還是properties他們都能獲取到值;

如果說(shuō),我們只是在某個(gè)業(yè)務(wù)邏輯中需要獲取一下配置文件中的某項(xiàng)值,使用@Value;

如果說(shuō),我們專門(mén)編寫(xiě)了一個(gè)javaBean來(lái)和配置文件進(jìn)行映射,我們就直接使用@ConfigurationProperties;

以上就是本次介紹的全部相關(guān)知識(shí)點(diǎn),感謝大家的學(xué)習(xí)和對(duì)腳本之家的支持。

相關(guān)文章

  • Java圖片轉(zhuǎn)字符圖片的生成方法

    Java圖片轉(zhuǎn)字符圖片的生成方法

    本文主要實(shí)現(xiàn)了將一張圖片轉(zhuǎn)成字符圖片,同樣可以遍歷每個(gè)像素點(diǎn),然后將像素點(diǎn)由具體的字符來(lái)替換,從而實(shí)現(xiàn)字符化處理,感興趣的可以了解一下
    2021-11-11
  • springboot配置https安全連接的方法

    springboot配置https安全連接的方法

    這篇文章主要介紹了springboot配置https安全連接的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Spring?Boot監(jiān)控SQL運(yùn)行情況的全過(guò)程

    Spring?Boot監(jiān)控SQL運(yùn)行情況的全過(guò)程

    這篇文章主要給大家介紹了關(guān)于Spring?Boot監(jiān)控SQL運(yùn)行情況的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用SpringBoot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-02-02
  • Springboot集成Actuator監(jiān)控功能詳解

    Springboot集成Actuator監(jiān)控功能詳解

    這篇文章主要介紹了Springboot集成Actuator監(jiān)控功能詳解,有時(shí)候我們想要實(shí)時(shí)監(jiān)控我們的應(yīng)用程序的運(yùn)行狀態(tài),比如實(shí)時(shí)顯示一些指標(biāo)數(shù)據(jù),觀察每時(shí)每刻訪問(wèn)的流量,或者是我們數(shù)據(jù)庫(kù)的訪問(wèn)狀態(tài)等等,這時(shí)候就需要Actuator了,需要的朋友可以參考下
    2023-09-09
  • mybatis-plus 判斷isnull or的操作

    mybatis-plus 判斷isnull or的操作

    這篇文章主要介紹了mybatis-plus 判斷isnull or的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02
  • Java的深拷貝與淺拷貝的幾種實(shí)現(xiàn)方式

    Java的深拷貝與淺拷貝的幾種實(shí)現(xiàn)方式

    這篇文章主要介紹了Java的深拷貝與淺拷貝的幾種實(shí)現(xiàn)方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 詳解Java中的內(nèi)存屏障

    詳解Java中的內(nèi)存屏障

    這篇文章主要介紹了Java中的內(nèi)存屏障的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-05-05
  • Java 實(shí)現(xiàn)圖片壓縮的兩種方法

    Java 實(shí)現(xiàn)圖片壓縮的兩種方法

    這篇文章主要介紹了Java 實(shí)現(xiàn)圖片壓縮的兩種方法,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-09-09
  • Java Object定義三個(gè)點(diǎn)實(shí)現(xiàn)代碼

    Java Object定義三個(gè)點(diǎn)實(shí)現(xiàn)代碼

    這篇文章主要介紹了Java Object定義三個(gè)點(diǎn)實(shí)現(xiàn)代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • 如何使用MybatisPlus的SQL注入器提升批量插入性能

    如何使用MybatisPlus的SQL注入器提升批量插入性能

    本文給大家介紹如何使用MybatisPlus的SQL注入器提升批量插入性能,以實(shí)戰(zhàn)視角講述如何利用該特性提升MybatisPlus?的批量插入性能,感興趣的朋友跟隨小編一起看看吧
    2024-05-05

最新評(píng)論