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

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

 更新時間:2022年07月25日 11:53:43   作者:棟zzzz  
SpringBoot項目是一個標準的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標簽就可以了

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來讀取:

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)文章

  • Java8使用lambda實現(xiàn)Java的尾遞歸

    Java8使用lambda實現(xiàn)Java的尾遞歸

    這篇文章主要介紹了Java8使用lambda實現(xiàn)Java的尾遞歸的相關(guān)資料,需要的朋友可以參考下
    2017-10-10
  • Java使用線程池的優(yōu)勢有哪些

    Java使用線程池的優(yōu)勢有哪些

    這篇文章主要介紹了Java使用線程池的優(yōu)勢有哪些,幫助大家更好的理解和掌握java池化技術(shù),感興趣的朋友可以了解下
    2020-09-09
  • springboot 整合 freemarker代碼實例

    springboot 整合 freemarker代碼實例

    這篇文章主要介紹了springboot 整合 freemarker代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10
  • 詳解Java?@Documented注解的作用

    詳解Java?@Documented注解的作用

    @Documented和@Deprecated注解長得有點像,@Deprecated是用來標注某個類或者方法不建議再繼續(xù)使用,@Documented只能用在注解上,本文將通過示例詳細說說@Documented注解的作用,需要的可以參考一下
    2022-09-09
  • Java web入門指南之在Idea上創(chuàng)建Java web項目

    Java web入門指南之在Idea上創(chuàng)建Java web項目

    好多書上的JavaWeb教程都是Eclipse以及MyEclipse,當然這里不論IDE的好壞,下面這篇文章主要給大家介紹了關(guān)于Java web入門指南之在Idea上創(chuàng)建Java web項目的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-06-06
  • 關(guān)于javaWeb中405錯誤的解決方法

    關(guān)于javaWeb中405錯誤的解決方法

    下面小編就為大家?guī)硪黄P(guān)于javaWeb中405錯誤的解決方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • SpringBoot入門原理及優(yōu)勢分析

    SpringBoot入門原理及優(yōu)勢分析

    本篇文章主要來為大家介紹SpringBoot入門原理及優(yōu)勢分析,有需要的朋友可以借鑒參考下,希望可以有所幫助,祝大家多多進步,早日升職加薪
    2021-09-09
  • java?springboot中如何讀取配置文件的屬性

    java?springboot中如何讀取配置文件的屬性

    大家好,本篇文章主要講的是java?springboot中如何讀取配置文件的屬性,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • Java正則表達式matcher.group()用法代碼

    Java正則表達式matcher.group()用法代碼

    這篇文章主要給大家介紹了關(guān)于Java正則表達式matcher.group()用法的相關(guān)資料,最近在做一個項目,需要使用matcher.group()方法匹配出需要的內(nèi)容,文中給出了詳細的代碼示例,需要的朋友可以參考下
    2023-08-08
  • 簡單了解Java創(chuàng)建線程兩種方法

    簡單了解Java創(chuàng)建線程兩種方法

    這篇文章主要介紹了簡單了解Java創(chuàng)建線程兩種方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02

最新評論

偏关县| 丰城市| 澄迈县| 饶阳县| 盐亭县| 邵东县| 吉安市| 筠连县| 绥芬河市| 桓台县| 西青区| 澄迈县| 海门市| 德钦县| 厦门市| 英吉沙县| 灌阳县| 日土县| 偏关县| 克山县| 东阿县| 紫阳县| 轮台县| 赤峰市| 颍上县| 凉城县| 马公市| 泰来县| 突泉县| 张家川| 罗平县| 郑州市| 灯塔市| 板桥市| 浮梁县| 榆中县| 江阴市| 乌苏市| 孝感市| 瑞丽市| 任丘市|