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

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

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

一.配置文件的作用

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

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

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

二.配置文件的格式

配置文件的分類(lèi)一般是:

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

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

  • .properties
  • .yml

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

三.properties配置文件的說(shuō)明

properties配置文件是更早期的配置文件格式,也是Spring Boot項(xiàng)目默認(rèn)的配置文件,下面就具體介紹一下properties配置文件:

1.properties基本語(yǔ)法

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

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

如果是自定義的配置文件的話(huà),也是key=value的形式,而這是需要自己寫(xiě)的,如果要讀取這個(gè)文件也只能使用自己定義的key值來(lái)得到value值!

2.讀取配置文件

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

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

然后通過(guò)頁(yè)面搜索http://localhost:8080/func就看有觀(guān)察到讀取到的端口號(hào)了:

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

3.properties的缺點(diǎn)

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

而想要解決這個(gè)問(wèn)題就需要使用yml配置文件了

四.yml配置文件的說(shuō)明

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

1.yml基本語(yǔ)法

在yml里面的基本語(yǔ)法是:key: value,注意key和value之間需要英文冒號(hào)加空格,其中的空格也是不可省略的,類(lèi)似

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

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

2.讀取配置文件

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

3.配置對(duì)象

在yml里面還是可以配置對(duì)象的:

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

而想要讀取到這個(gè)對(duì)象的話(huà)就不能再使用@Value注解了,這里需要借助@ConfigurationProperties來(lái)讀?。?/p>

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

然后讀取對(duì)象,就可以直接進(jìn)行注入了:

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

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

4.配置集合

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

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

而要獲取到集合的話(huà),和獲取對(duì)象是差不多的,也是通過(guò)@ConfigurationProperties來(lái)獲取:

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();
    }
}

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

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

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

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

相關(guān)文章

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

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

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

    Java使用線(xiàn)程池的優(yōu)勢(shì)有哪些

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

    springboot 整合 freemarker代碼實(shí)例

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

    詳解Java?@Documented注解的作用

    @Documented和@Deprecated注解長(zhǎng)得有點(diǎn)像,@Deprecated是用來(lái)標(biāo)注某個(gè)類(lèi)或者方法不建議再繼續(xù)使用,@Documented只能用在注解上,本文將通過(guò)示例詳細(xì)說(shuō)說(shuō)@Documented注解的作用,需要的可以參考一下
    2022-09-09
  • Java web入門(mén)指南之在Idea上創(chuàng)建Java web項(xiàng)目

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

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

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

    下面小編就為大家?guī)?lái)一篇關(guān)于javaWeb中405錯(cuò)誤的解決方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • SpringBoot入門(mén)原理及優(yōu)勢(shì)分析

    SpringBoot入門(mén)原理及優(yōu)勢(shì)分析

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

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

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

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

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

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

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

最新評(píng)論

科技| 阜宁县| 抚州市| 克什克腾旗| 逊克县| 苗栗县| 汝阳县| 申扎县| 翼城县| 郎溪县| 车致| 寿宁县| 永平县| 乌兰察布市| 芦溪县| 库尔勒市| 安化县| 永善县| 东丽区| 台中市| 原平市| 广丰县| 临澧县| 措美县| 清涧县| 涿鹿县| 斗六市| 泊头市| 申扎县| 南丰县| 迁安市| 环江| 黎平县| 吉首市| 日照市| 乌拉特后旗| 获嘉县| 河西区| 彰化县| 益阳市| 吉木萨尔县|