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

Spring Boot詳解配置文件有哪些作用與細則

 更新時間:2022年07月25日 11:53:43   作者:棟zzzz  
SpringBoot項目是一個標(biāo)準(zhǔn)的Maven項目,它的配置文件需要放在src/main/resources/下,其文件名必須為application,其存在兩種文件形式,分別是properties和yaml(或者yml)文件

一.配置文件的作用

配置文件是非常重要的,整個項目中所有的重要數(shù)據(jù)都是在配置文件中進行配置的例如:

  • 數(shù)據(jù)庫的連接信息(用戶名和密碼的設(shè)置);
  • 項目啟動的端口;
  • 第三方系統(tǒng)調(diào)用的秘鑰信息;
  • 可以發(fā)現(xiàn)和定位問題的普通日志和異常日志等(日志的級別和持久化);

如果沒有配置文件的話,這些信息就無法進行配置了,數(shù)據(jù)庫無法連接,日志無法查看等這些問題都是對于Spring Boot項目非常關(guān)鍵的,因此配置文件是特別重要的!

二.配置文件的格式

配置文件的分類一般是:

  • 系統(tǒng)的配置文件(系統(tǒng)定義好的),如連接字符串,日志的相關(guān)設(shè)置;
  • 用戶自己定義的;

而Spring Boot的配置文件主要有兩種格式:

  • .properties
  • .yml

就是這樣的兩種格式,而且這里也一定要這么寫,不然也是會報錯的(約定大于配置),在這兩個里面都是可以進行相關(guān)配置文件的設(shè)置的,兩種格式只是不同時間的產(chǎn)物罷了,另外兩種格式的寫法也是不同的,這個下面會有相關(guān)的介紹,而且這兩種格式也是可以并存的,如果兩個都配置了,這里的配置會采用properties里面的配置,而忽略yml里面的配置,因此不建議同時使用兩種格式再同一個項目中!

三.properties配置文件的說明

properties配置文件是更早期的配置文件格式,也是Spring Boot項目默認的配置文件,下面就具體介紹一下properties配置文件:

1.properties基本語法

在properties里面是以鍵值對為主的(key=value),類似于

這樣的格式(中間不要寫空格,也不要寫多余的空格)

如果是自定義的配置文件的話,也是key=value的形式,而這是需要自己寫的,如果要讀取這個文件也只能使用自己定義的key值來得到value值!

2.讀取配置文件

同樣也是使用注解就可以解決這個問題,這里使用@Value注解以及${}的格式就可以進行讀取了:

@Controller
public class Test {
    @Value("${server.port}") //讀取配置項
    private  String port;
    @ResponseBody  //返回一個非靜態(tài)頁面的數(shù)據(jù)
    @RequestMapping("/func")  //設(shè)置路由地址
    public String  func(){
        return "port: " + port;
    }
}

然后通過頁面搜索http://localhost:8080/func就看有觀察到讀取到的端口號了:

而使用@Value是只能讀取一個配置文件的話,如果想讀取多個的話,需要多寫幾個@Value標(biāo)簽就可以了

3.properties的缺點

在properties里面是采用key=value的形式,而如果是同一key下的value,就需要把此key值重復(fù)來寫,這就顯得非常冗余了

而想要解決這個問題就需要使用yml配置文件了

四.yml配置文件的說明

yml是另一種格式的配置文件,yml 是?個可讀性?,易于理解,?來表達數(shù)據(jù)序列化的格式,yml的語法和高級語言非常類似,而yml最大的優(yōu)勢是可以跨語言,像python,golang都可以使用yml作為配置?件。下面具體介紹一下yml配置文件:

1.yml基本語法

在yml里面的基本語法是:key: value,注意key和value之間需要英文冒號加空格,其中的空格也是不可省略的,類似

這樣的語法再寫上面的連接數(shù)據(jù)庫配置的話,就方便很多了:

補充:yml中關(guān)于單、雙引號的問題:yml中如果使用了雙引號就會按照(原)語義執(zhí)行,如果不加,或者加了單引號,那么默認就會將字符串中的特殊字符進行轉(zhuǎn)義,比如\n -> \n(轉(zhuǎn)義)處理。

2.讀取配置文件

yml配置文件的讀取方式也是和properties一樣的,都是使用@Value注解加${}的格式,這里就不演示了,下面來看一下yml不一樣的地方!

3.配置對象

在yml里面還是可以配置對象的:

另外也可以使用行內(nèi)寫法:

而想要讀取到這個對象的話就不能再使用@Value注解了,這里需要借助@ConfigurationProperties來讀?。?/p>

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Data
@ConfigurationProperties(prefix = "student") //讀取配置文件的對象
@Component
public class Student {
    private int id;
    private String name;
    private int age;
}

然后讀取對象,就可以直接進行注入了:

@Controller
public class Test {
    @Autowired
    private Student student;
    @ResponseBody
    @RequestMapping("/getstudent")
    public String getStudent(){
        return "student: " + student;
    }
}

然后通過瀏覽器搜索http://localhost:8080/getstudent就可以得到對象內(nèi)容了:

4.配置集合

在yml里面也是可以配置集合的:

同樣行內(nèi)寫法也是可以的:

而要獲取到集合的話,和獲取對象是差不多的,也是通過@ConfigurationProperties來獲取:

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.List;
@Data
@ConfigurationProperties(prefix = "dbtypes")
@Component
public class ListConfig {
    private List<String> name;
}

讀取集合:

@Controller
public class Test {
    @Autowired
    private ListConfig listConfig;
    @ResponseBody
    @RequestMapping("/getlist")
    public String getList(){
        return "name:" + listConfig.getName();
    }
}

然后通過瀏覽器搜索http://localhost:8080/getlist就可以得到對象內(nèi)容了:

五.properties和yml的區(qū)別

  • properties是以key=value的形式配置的鍵值對類型配置文件,而yml是以key: value的形式配置的鍵值對類型配置文件;
  • properties是早期且系統(tǒng)默認的配置文件格式,但配置存在一定的冗余數(shù)據(jù),而yml可以更好的解決數(shù)據(jù)冗余問題;
  • yml通用性更好,支持多語言;
  • yml支持更多的數(shù)據(jù)類型;

到此這篇關(guān)于Spring Boot詳解配置文件有哪些作用與細則的文章就介紹到這了,更多相關(guān)Spring Boot配置文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SparkSQL使用IDEA快速入門DataFrame與DataSet的完美教程

    SparkSQL使用IDEA快速入門DataFrame與DataSet的完美教程

    本文給大家介紹使用idea開發(fā)Spark SQL 的詳細過程,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-08-08
  • SpringBoot中調(diào)用通用URL的實現(xiàn)

    SpringBoot中調(diào)用通用URL的實現(xiàn)

    在 Spring Boot 應(yīng)用程序中,有時候我們需要調(diào)用一些通用的 URL 接口,本文主要介紹了SpringBoot中調(diào)用通用URL的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • 基于idea把maven工程轉(zhuǎn)換為web項目

    基于idea把maven工程轉(zhuǎn)換為web項目

    這篇文章主要介紹了基于idea把maven工程轉(zhuǎn)換為web項目,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • 詳解 maven的pom.xml用<exclusion>解決版本問題

    詳解 maven的pom.xml用<exclusion>解決版本問題

    這篇文章主要介紹了詳解 maven的pom.xml用<exclusion>解決版本問題的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • mybatis 運行時加載自定義mapper文件方式

    mybatis 運行時加載自定義mapper文件方式

    這篇文章主要介紹了mybatis 運行時加載自定義mapper文件方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • java常用工具類 數(shù)字工具類

    java常用工具類 數(shù)字工具類

    這篇文章主要為大家詳細介紹了java常用工具類中的數(shù)字工具類,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • spring boot整合redis實現(xiàn)RedisTemplate三分鐘快速入門

    spring boot整合redis實現(xiàn)RedisTemplate三分鐘快速入門

    這篇文章主要介紹了spring boot整合redis實現(xiàn)RedisTemplate三分鐘快速入門,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 關(guān)于Java的動態(tài)代理機制

    關(guān)于Java的動態(tài)代理機制

    這篇文章主要介紹了關(guān)于Java的動態(tài)代理機制,動態(tài)代理就是,在程序運行期,創(chuàng)建目標(biāo)對象的代理對象,并對目標(biāo)對象中的方法進行功能性增強的一種技術(shù),需要的朋友可以參考下
    2023-05-05
  • 一篇文章帶你了解java數(shù)據(jù)庫連接

    一篇文章帶你了解java數(shù)據(jù)庫連接

    這篇文章主要介紹了Java基于連接數(shù)據(jù)庫及顯示數(shù)據(jù)操作,結(jié)合實例形式分析了Java使用jdbc進行mysql數(shù)據(jù)庫連接與數(shù)據(jù)讀取、顯示等相關(guān)操作技巧,需要的朋友可以參考下
    2021-08-08
  • Triple協(xié)議支持Java異?;貍髟O(shè)計實現(xiàn)詳解

    Triple協(xié)議支持Java異?;貍髟O(shè)計實現(xiàn)詳解

    這篇文章主要為大家介紹了Triple協(xié)議支持Java異常回傳設(shè)計實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12

最新評論