當前位置:首頁 » 存儲配置 » springboot如何讀區配置文件

springboot如何讀區配置文件

發布時間: 2022-09-06 20:06:49

㈠ SpringBoot 配置文件詳解(告別XML)

快速學會和掌握 SpringBoot 的 核心配置文件的使用。

SpringBoot 提供了豐富的 外部配置 ,常見的有:

其中核心配置文件我們並不陌生,主要以Key-Value的形式進行配置,其中屬性Key主要分為兩種:

在 application.properties 添加配置如下:

① 添加數據源信息

在 application.propertis 添加配置如下:

① 添加認證信息,其中 socks.indentity.* 是自定義的屬性前綴。

② 添加隨機值,其中spring.test.* 是自定義的屬性前綴。

使用方法: @ConfigurationProperties(prefix = "spring.datasource")

使用說明:提供 Setter方法 和 標記組件 Component

如何驗證是否成功讀取配置?答:這里可以簡單做個驗證,注入 MyDataSource ,使用 Debug 模式可以看到如下信息:

使用方法: @Value("spring.datasource.*")

使用說明:提供 Setter方法 和 標記組件 Component

注意事項:@Value不支持注入靜態變數,可間接通過Setter注入來實現。

關於兩者的簡單功能對比:

顯然,前者支持松綁定的特性更強大,所以在實際開發中建議使用@ConfigurationProperties來讀取自定義屬性。

SpringBoot 默認會載入這些路徑載入核心配置文件,按優先順序從高到低進行排列:具體規則詳見 ConfigFileApplicationListener

如果存在多個配置文件,則嚴格按照優先順序進行覆蓋,最高者勝出:

舉個簡單的例子,例如再上述位置都有一個application.properties ,並且每個文件都寫入了server.port=xx (xx分別是9001,9002,9003,9004),在啟動成功之後,最終應用的埠為:9004。圖例:

如果想修改默認的載入路徑 或者 調改默認的配置文件名,我們可以藉助命令行參數進行指定,例如:

YAML是JSON的一個超集,是一種可輕松定義層次結構的數據格式。

答: 因為配置文件這東西,結構化越早接觸越規范越好。這里推薦閱讀阮一峰老師寫的 YAML語言教程 ,寫的很簡單明了。

引入依賴: 在POM文件引入 snakeyaml 的依賴。

使用說明: 直接在類路徑添加 application.yml 即可。

例如下面這兩段配置是完全等價的:

① 在 application.yml 配置數據源:

② 在 application.properties 配置數據源:

在項目的實際開發中,我們往往需要根據不同的環境來載入不同的配置文件。例如生產環境,測試環境和開發環境等。此時,我們可以藉助 Profiles 來指定載入哪些配置文件。例如:

溫馨提示:如果spring.profiles.active指定了多個配置文件,則按順序載入,其中最後的優先順序最高,也就是最後的會覆蓋前者。

使用方法:
使用Maven插件打包好項目,然後在當前路徑,執行DOS命令: java -jar demo.jar --server.port=8081 ,在控制台可看到應用埠變成了8081。

實現原理:
默認情況下,SpringBoot會將這些命令行參數轉化成一個 Property ,並將其添加到 Environment 上下文。

溫馨提示:
由於命令行參數優先順序非常之高,基本高於所有常見的外部配置,所以使用的時候要謹慎。詳見 PropertySource 執行順序 。

關閉方法:
如果想禁用命令行屬性,可以設置如下操作:springApplication.setAddCommandLineProperties(false)

㈡ springboot讀取不到引入配置文件值

你好,如果讀取不到的話,應該是還沒有那個許可權吧。這個時候您其實是可以直接去找一下有相關許可權的人獲取一下。

㈢ spring boot 過濾器 怎麼讀取配置文件

1.用光碟或U盤PE進入以後, 用分區工具-點C盤-激活當前分區-設為活動分區2..找一張安裝光碟(非GHOST版),在BIOS中設置光碟機為第一啟動,然後當用光碟啟動起來以後,選擇語言,一直往下走,在左下角你就會看到有一個修復計算機,點擊一下,在彈出的對話框中,點擊修復計算機,這樣就開始修復了,修復完成後,然後重啟

㈣ 如何解決springboot讀取配置文件的中文亂碼

在application.properties中填寫中文信息,在讀取該文件時會出現中文亂碼問題。

比如:application.properties內容:

student.name=小康
student.age=15


㈤ 如何在SpringBoot下讀取自定義properties配置文件

創建個properties文件,然後向裡面寫配置就可以了,然後寫個類去讀取就可以了!

㈥ springboot核心註解是什麼

1、##@SpringBootConfiguration:讀取配置文件,配置文件的路徑是當前根目錄(src/main/resources/application.yml等)。

2、##EnableAutoConfiguration:開啟自動配置,掃描當前的所有依賴的jar包,發現新的依賴出現將會將會根據依賴完各種自動配置。


(6)springboot如何讀區配置文件擴展閱讀

SpringBoot基於所添加的依賴,去「猜測」你想要如何配置Spring。比如引入了spring-boot-starter-web,而這個啟動器中添加了tomcat、SpringMVC的依賴。

此時自動配置就知道是要開發一個web應用,所以就幫完成了web及SpringMVC的默認配置了!我們使用SpringBoot構建一個項目。

㈦ 請教,如何spring boot里動態讀取配置文件

public void getCsisUrl(){
Properties p = new Properties();
try{
FileInputStream in = new FileInputStream(ServletActionContext.getRequest().getRealPath("/WEB-INF/classes/demo.properties"));
p.load(in);
in.close();
String csisUrl= p.getProperty("csisUrl");
//System.out.println(csisUrl);
}catch(Exception e){
e.printStackTrace();
}
}

㈧ springboot怎麼讀取指定的配置文件中文亂碼

方法一:找一台Windows版本相同且顯示正常的機器,依下列步驟進行: 1.在正常機器上選擇「開始」→「運行」,在對話框中鍵入「regedit」,打開注冊表編輯器; 2.請將游標定位到「HKEY_LOCAL_MACHINE Fontassoc」,然後選擇「注冊表」→「導出注冊表文件」,再選擇「分支」,導出該分支注冊表信息到文件(如ZT.REG)中; 3.把ZT.REG文件拷貝到你那顯示亂碼的機器上,方法是:在顯示亂碼的機器上運行「regedit」,打開注冊表編輯器,選擇「注冊表」→「導入注冊注冊表」,把ZT.REG文件導入注冊表中即可。 方法二:如果你找不到一台與你的Windows版本相同且顯示正常的機器,則需要手工恢復字體部分的注冊表 項,其步驟是: 1.首先在顯示亂碼的機器上選擇「開始」→「運行」,在對話框中鍵入「regedit」,打開注冊表編輯器; 2.選擇「HKEY_LOCAL_MACHINESystem 」,正常情況下,會有Associated DeaultFonts、Associated CharSet兩個文件夾,其正確的內容應是: 子目錄內容 中文Win98 中文Win98(OEM版) 中文Win2000 Associated CharSet ANSI(00)=「yes」 GB2312(86)=「yes」 DEN(FF)=「yes」 SYMBOL(02)=「no」 ANSI(00)=「yes」 GB2312(86)=「yes」 OEM(FF)=「yes」 SYMBOL(02)=「no」 ANSI(00)=「yes」 OEM(FF)=「yes」 SYMBOL(02)=「no」 Associated DefaultFonts AssocSystemFont=「simsun.ttf」 FontPackageDecorative=「宋體」 FontPackageDontcare=「宋體」 FontPackageModern=「宋體」 FontPackageRoman=「宋體」 FontPackageScript=「宋體」 FontPackageSwiss=「宋體」 或 AssocSystemFont=「simsun.ttf」 FontPackage=「新宋體」 FontPackageDecorative=「新宋體」 FontPackageDontcare=「新宋體」 FontPackageModern=「新宋體」 FontPackageRoman=「新宋體」 FontPackageScript=「新宋體」 FontPackageSwiss=「新宋體」 3.當出現漢字亂碼時,上述兩個文件夾中的內容就會不完整,有的沒有Associated CharSet文件夾或其中的內容殘缺不全;有的 Associated DefaulFonts下的內容殘缺。如果遇到這種情況怎麼辦呢?其實你只要打開注冊表編輯器,在 「HKEY_LOCAL_」下,根據以上的正確內容恢復即可。

㈨ java 中的spring boot框架是怎麼讀取application.properties的

web.xml是來啟動框架,然後就是代理來讀取配置文件,之後根據文件到對應的操作

㈩ SpringBoot 如何優雅讀取配置文件10分鍾教你搞定

很多時候我們需要將一些常用的配置信息比如阿里雲 oss 配置、發送簡訊的相關信息配置等等放到配置文件中。

下面我們來看一下 Spring 為我們提供了哪些方式幫助我們從配置文件中讀取這些配置信息。

application.yml 內容如下:

wuhan2020: 2020年初武漢爆發了新型冠狀病毒,疫情嚴重,但是,我相信一切都會過去!武漢加油!中國加油!my-profile:name: Guide哥email: [email protected]:location: 湖北武漢加油中國加油books:    -name: 天才基本法description: 二十二歲的林朝夕在父親確診阿爾茨海默病這天,得知自己暗戀多年的校園男神裴之即將出國深造的消息——對方考取的學校,恰是父親當年為她放棄的那所。    -name: 時間的秩序description: 為什麼我們記得過去,而非未來?時間「流逝」意味著什麼?是我們存在於時間之內,還是時間存在於我們之中?卡洛·羅韋利用詩意的文字,邀請我們思考這一亘古難題——時間的本質。    -name: 了不起的我description: 如何養成一個新習慣?如何讓心智變得更成熟?如何擁有高質量的關系? 如何走出人生的艱難時刻?

1.通過 @value 讀取比較簡單的配置信息

使用 @Value("${property}") 讀取比較簡單的配置信息:

@Value("${wuhan2020}")String wuhan2020;

需要注意的是 @value這種方式是不被推薦的,Spring 比較建議的是下面幾種讀取配置信息的方式。

2.通過@ConfigurationProperties讀取並與 bean 綁定

LibraryProperties 類上加了 @Component 註解,我們可以像使用普通 bean 一樣將其注入到類中使用。

importlombok.Getter;importlombok.Setter;importlombok.ToString;importorg.springframework.boot.context.properties.ConfigurationProperties;importorg.springframework.context.annotation.Configuration;importorg.springframework.stereotype.Component;importjava.util.List;@Component@ConfigurationProperties(prefix ="library")@Setter@Getter@{privateString location;privateList books;@Setter@Getter@ToStringstaticclassBook{        String name;        String description;    }}

這個時候你就可以像使用普通 bean 一樣,將其注入到類中使用:

packagecn.javaguide.readconfigproperties;importorg.springframework.beans.factory.InitializingBean;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;/** *@authorshuang.kou */@ntsInitializingBean{privatefinalLibraryProperties library;(LibraryProperties library){this.library = library;    }publicstaticvoidmain(String[] args){        SpringApplication.run(.class,args);    }@(){        System.out.println(library.getLocation());        System.out.println(library.getBooks());    }}

控制台輸出:

湖北武漢加油中國加油[LibraryProperties.Book(name=天才基本法, description........]

3.通過@ConfigurationProperties讀取並校驗

我們先將application.yml修改為如下內容,明顯看出這不是一個正確的 email 格式:

my-profile:name: Guide哥email: koushuangbwcx@

ProfileProperties 類沒有加 @Component 註解。我們在我們要使用ProfileProperties 的地方使用@

EnableConfigurationProperties注冊我們的配置 bean:

importlombok.Getter;importlombok.Setter;importlombok.ToString;importorg.springframework.boot.context.properties.ConfigurationProperties;importorg.springframework.stereotype.Component;importorg.springframework.validation.annotation.Validated;importjavax.validation.constraints.Email;importjavax.validation.constraints.NotEmpty;/***@authorshuang.kou*/@Getter@Setter@ToString@ConfigurationProperties("my-profile")@{@NotEmptyprivateString name;@Email@NotEmptyprivateString email;//配置文件中沒有讀取到的話就用默認值privateBooleanhandsome =Boolean.TRUE;}

具體使用:

packagecn.javaguide.readconfigproperties;importorg.springframework.beans.factory.InitializingBean;importorg.springframework.beans.factory.annotation.Value;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;importorg.springframework.boot.context.properties.EnableConfigurationProperties;/** *@authorshuang.kou */@SpringBootApplication@EnableConfigurationProperties(ProfileProperties.class){privatefinalProfileProperties profileProperties;(ProfileProperties profileProperties){this.profileProperties = profileProperties;    }publicstaticvoidmain(String[] args){        SpringApplication.run(.class,args);    }@(){        System.out.println(profileProperties.toString());    }}

因為我們的郵箱格式不正確,所以程序運行的時候就報錯,根本運行不起來,保證了數據類型的安全性:

Binding to target org.springframework.boot.context.properties.bind.BindException:Failedtobindpropertiesunder'my-profile'to cn.javaguide.readconfigproperties.ProfileProperties failed:Property:my-profile.emailValue:koushuangbwcx@Origin:classpathresource[application.yml]:5:10Reason:mustbeawell-formedemailaddress

我們把郵箱測試改為正確的之後再運行,控制台就能成功列印出讀取到的信息:

ProfileProperties(name=Guide哥, [email protected], handsome=true)

4.@PropertySource讀取指定 properties 文件

importlombok.Getter;importlombok.Setter;importorg.springframework.beans.factory.annotation.Value;importorg.springframework.context.annotation.PropertySource;importorg.springframework.stereotype.Component;@Component@PropertySource("classpath:website.properties")@Getter@SetterclassWebSite{@Value("${url}")privateString url;}

使用:

@Autowiredprivate WebSite webSite;System.out.println(webSite.getUrl());//https://javaguide.cn/

5.題外話:Spring 載入配置文件的優先順序

Spring 讀取配置文件也是有優先順序的,直接上圖:

原文鏈接:https://www.toutiao.com/a6791445278911103500/?log_from=7f5fb8f9b4b47_1640606437752

熱點內容
微博緩存的圖片能清理嗎 發布:2025-01-11 11:01:49 瀏覽:306
文字加密器 發布:2025-01-11 11:01:08 瀏覽:453
vc60非靜態編譯 發布:2025-01-11 10:51:32 瀏覽:614
電腦上怎麼解壓縮文件 發布:2025-01-11 10:51:31 瀏覽:782
槍戰王者如何用賬號密碼登錄 發布:2025-01-11 10:30:56 瀏覽:936
mysql在linux下安裝 發布:2025-01-11 10:30:49 瀏覽:843
資料庫copy 發布:2025-01-11 10:26:06 瀏覽:533
unity清理緩存 發布:2025-01-11 10:25:23 瀏覽:466
優酷視頻雙擊上傳 發布:2025-01-11 10:24:41 瀏覽:963
存儲臍帶胎兒幹細胞 發布:2025-01-11 10:18:36 瀏覽:331