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

Springboot的配置文件及其優(yōu)先級(jí)說(shuō)明

 更新時(shí)間:2025年12月11日 14:33:36   作者:我是鴰貔  
文章介紹了Spring Boot的配置文件,包括application.properties和application.yml的使用,以及它們的優(yōu)先級(jí),還討論了如何通過(guò)外置配置文件覆蓋內(nèi)置配置文件,并使用@Value注解讀取自定義屬性

配置文件

內(nèi)置配置文件

配置文件的作用:修改SpringBoot自動(dòng)配置的默認(rèn)值;SpringBoot在底層都給我們自動(dòng)配置好;SpringBoot使用一個(gè)全局的配置文件,配置文件名是固定的:

  • application.properties
  • application.yml

以上兩個(gè)任意一個(gè)都可以,也可以組合起來(lái)使用

  • 以前的配置文件:大多都使用的是 xxxx.xml文件;
  • YAML:以數(shù)據(jù)為中心,比json、xml等更適合做配置文件;

yml與properties的比較

application.properties與application.yml的比較:

我們會(huì)發(fā)現(xiàn)properties文件如果是要配置同一層級(jí)下的屬性需要把它的前綴全部寫上,而yml文件則是跟文件的層級(jí)結(jié)構(gòu)相似,而且分層清晰,所有我們一般選擇使用yml文件。

優(yōu)先級(jí)比較

雖然說(shuō)application.yml與application.properties都是springboot的配置文件,但是他們也存在一個(gè)優(yōu)先級(jí):properties的優(yōu)先級(jí)高于yml文件。

接下來(lái)就是驗(yàn)證這個(gè)優(yōu)先級(jí) :

首先給yml和properties文件設(shè)置不同的port,然后啟動(dòng)項(xiàng)目

項(xiàng)目啟動(dòng)之后,我們從日志中可以看到端口號(hào)時(shí)8081,時(shí)properties文件中配置的,因此驗(yàn)證了properties文件的優(yōu)先級(jí)。

外置配置文件

首先,再我們的項(xiàng)目中我們導(dǎo)入了一個(gè)插件,可以將應(yīng)用打包成一個(gè)可執(zhí)行的jar包,無(wú)論在哪都可以使用java -jar進(jìn)行運(yùn)行。因此我們可以把打包好的jar包拿出來(lái),放到一個(gè)文件夾中,然后去驗(yàn)證其外置的配置文件。

插件如下:

打包的時(shí)候我們先需要依次運(yùn)行clean和package指令。

打包完成之后我們可以進(jìn)入到項(xiàng)目對(duì)應(yīng)的target文件夾下邊,結(jié)構(gòu)如下:

我們可以把jar包復(fù)制一份,然后放到一個(gè)新的文件夾中,并在文件夾中新建一個(gè)application.yml文件,重新制定port為8085,然后使用java -jar運(yùn)行程序。

java -jar redisdemo-0.0.1-SNAPSHOT.jar

然后我們?cè)诋?dāng)前目錄下新建一個(gè)config文件,config文件中新建一個(gè)application.yml文件,并設(shè)置port為8090,然后再次啟動(dòng)項(xiàng)目,我們會(huì)發(fā)現(xiàn)端口號(hào)變成了8090。

因此我們得到一個(gè)優(yōu)先級(jí)的比較:

外置的config中的配置文件>外置的配置文件>內(nèi)置的application.properties>內(nèi)置application.yml

springboot讀取配置文件

我們也可以在配置文件中自定義屬性的值,然后可以使用@Value來(lái)讀取,例如:

在yml文件中添加:

api:
  name: zhangsan
  password: 123456

新建ConfigController文件:

package com.example.redisdemo.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ConfigController {
    // :后邊的是默認(rèn)值,如果找不到api.name就使用1,并且不會(huì)拋出異常
    @Value("${api.name:1}")
    private String name;
    @Value("${api.password:2}")
    private String password;

    @GetMapping("/config")
    public void config(){
        System.out.println(name);
        System.out.println(password);
    }
}

然后啟動(dòng)項(xiàng)目,訪問(wèn)config進(jìn)行驗(yàn)證:

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • MyBatis-Plus 邏輯刪除的實(shí)現(xiàn)示例

    MyBatis-Plus 邏輯刪除的實(shí)現(xiàn)示例

    邏輯刪除通過(guò)標(biāo)記字段實(shí)現(xiàn)數(shù)據(jù)“假刪除”,既保障了數(shù)據(jù)安全,又簡(jiǎn)化了恢復(fù)操作,是核心業(yè)務(wù)數(shù)據(jù)的最佳刪除方案,下面就來(lái)介紹一下MyBatis-Plus邏輯刪除的實(shí)現(xiàn),感興趣的可以了解一下
    2026-01-01
  • JVM完全解讀之GC日志記錄分析

    JVM完全解讀之GC日志記錄分析

    這篇文章主要介紹了JVM完全解讀之GC日志記錄分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-01-01
  • SpringBoot項(xiàng)目中application.yml和bootstrap.yml文件的區(qū)別及說(shuō)明

    SpringBoot項(xiàng)目中application.yml和bootstrap.yml文件的區(qū)別及說(shuō)明

    `application.yml`和`bootstrap.yml`都是Spring Boot項(xiàng)目中的配置文件,但它們?cè)诩虞d時(shí)機(jī)、用途、優(yōu)先級(jí)、配置來(lái)源、適用場(chǎng)景和是否必須存在等方面存在區(qū)別
    2025-03-03
  • SpringBoot項(xiàng)目多模塊項(xiàng)目中父類與子類pom.xml的關(guān)聯(lián)問(wèn)題小結(jié)

    SpringBoot項(xiàng)目多模塊項(xiàng)目中父類與子類pom.xml的關(guān)聯(lián)問(wèn)題小結(jié)

    這篇文章主要介紹了SpringBoot項(xiàng)目多模塊項(xiàng)目中父類與子類pom.xml的關(guān)聯(lián)問(wèn)題,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2025-04-04
  • Mybatis Plus使用@TableId的示例詳解

    Mybatis Plus使用@TableId的示例詳解

    在 MyBatis Plus 中,@TableId 注解是用于標(biāo)記實(shí)體類中的主鍵字段,它可以更方便地處理主鍵相關(guān)的操作,如自動(dòng)填充主鍵值或識(shí)別主鍵字段,這篇文章主要介紹了Mybatis Plus使用@TableId,需要的朋友可以參考下
    2024-08-08
  • Maven項(xiàng)目執(zhí)行生命周期相關(guān)操作時(shí)出現(xiàn)錯(cuò)誤:does not match a valid id pattern問(wèn)題

    Maven項(xiàng)目執(zhí)行生命周期相關(guān)操作時(shí)出現(xiàn)錯(cuò)誤:does not match a 

    當(dāng)pom文件中的gav標(biāo)簽格式錯(cuò)誤,如出現(xiàn)中文或空格,會(huì)導(dǎo)致與有效的id模式不匹配錯(cuò)誤,gav標(biāo)簽應(yīng)僅包含數(shù)字、字母和下劃線,解決方法是修改標(biāo)簽中的中文為英文,刪除多余空格,并刷新pom文件,例如,將中文"測(cè)試"改為英文"test"
    2024-09-09
  • 如何利用@PreAuthorize注解自定義權(quán)限校驗(yàn)

    如何利用@PreAuthorize注解自定義權(quán)限校驗(yàn)

    通過(guò)使用@PreAuthorize注解實(shí)現(xiàn)開放接口的權(quán)限校驗(yàn),具體步驟包括開啟全局方法安全、編寫自定義鑒權(quán)方法、創(chuàng)建自定義異常類、在統(tǒng)一異常處理類中捕獲異常并處理,最后在需要鑒權(quán)的接口上貼上注解
    2024-12-12
  • IntelliJ IDEA新版本中Maven子模塊不顯示的解決方案

    IntelliJ IDEA新版本中Maven子模塊不顯示的解決方案

    在使用IntelliJ IDEA 2024版本開發(fā)Maven多模塊項(xiàng)目時(shí),我發(fā)現(xiàn)一個(gè)令人困惑的現(xiàn)象,父模塊的子模塊未在右側(cè) Maven 工具窗口中顯示,僅顯示父模塊名稱,而此前2021版本中,父模塊和子模塊均能正常顯示,所以本文給大家介紹了IntelliJ IDEA新版本中Maven子模塊不顯示的解決方案
    2025-05-05
  • SpringAI+Ollama本地模型實(shí)現(xiàn)快速對(duì)話的實(shí)戰(zhàn)指南

    SpringAI+Ollama本地模型實(shí)現(xiàn)快速對(duì)話的實(shí)戰(zhàn)指南

    SpringAI是Spring官方推出的AI應(yīng)用開發(fā)框架,旨在統(tǒng)一封裝多種大模型,提供一套代碼無(wú)縫切換不同模型的功能,下面我們就來(lái)看看SpringAI如何結(jié)合Ollama實(shí)現(xiàn)快速對(duì)話功能吧
    2026-05-05
  • Idea中Java項(xiàng)目如何修改項(xiàng)目名

    Idea中Java項(xiàng)目如何修改項(xiàng)目名

    這篇文章主要介紹了Idea中Java項(xiàng)目如何修改項(xiàng)目名問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06

最新評(píng)論

布拖县| 洛宁县| 怀仁县| 普宁市| 三江| 济南市| 四平市| 巩留县| 萨迦县| 温州市| 自贡市| 涞水县| 边坝县| 华坪县| 灵寿县| 永安市| 科技| 永昌县| 全南县| 双城市| 红河县| 万载县| 南漳县| 全椒县| 黄平县| 嘉黎县| 晴隆县| 三门峡市| 黄骅市| 安龙县| 慈溪市| 宜春市| 临朐县| 石城县| 江门市| 克拉玛依市| 焉耆| 大化| 沂水县| 沭阳县| 尉犁县|