第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

彈簧啟動屬性,具有來自依賴項的配置文件

彈簧啟動屬性,具有來自依賴項的配置文件

素胚勾勒不出你 2022-09-22 10:26:25
問題:我在軟件中有3個部分:客戶端 A 服務(wù)客戶端 B 服務(wù)目標(biāo) C 服務(wù)我想從A和B連接到C,我寫了一個具有以下設(shè)置的庫:/src/main/java/pkg.../目標(biāo)連接器.java/src/main/java/pkg.../目標(biāo)配置.java/src/main/resources/應(yīng)用程序開發(fā)屬性/src/main/resources/application-tst.properties/src/main/resources/application-prd.properties我的客戶 A 和 B 都有自己的來源和屬性:/src/main/java/pkg.../Client{A/B}Service.java/src/main/java/pkg.../Client{A/B}Config.java/src/main/resources/應(yīng)用程序開發(fā)屬性/src/main/resources/application-tst.properties/src/main/resources/application-prd.properties連接器的屬性包含服務(wù)的一些登錄信息,例如target.url=https://....target.usr=blablablatarget.key=mySHAkey在目標(biāo)配置中用于預(yù)配置連接器,例如@Value("target.url")String url;@Value("target.usr")String usr;@Value("target.key")String key;@Beanpublic TargetConnector connector() {  return new TargetConnector(url, usr, key);}現(xiàn)在,當(dāng)我在客戶端中使用連接器 jar 時,我可以通過軟件包掃描找到配置。連接器類已加載,但問題是它不加載屬性文件。研究我發(fā)現(xiàn)多個屬性文件不能具有相同的名稱(例如,客戶端應(yīng)用程序-{profile}.屬性與來自連接器的應(yīng)用程序沖突),因此我嘗試將目標(biāo)連接器的應(yīng)用程序-{profile}.屬性重命名為應(yīng)用程序連接器-{profile}.屬性。仍然沒有加載的屬性(這是有道理的,因為我沒有例如連接器開發(fā)配置文件,但我的配置文件只是命名為dev)。此外,即使我嘗試使用以下命令從連接器顯式加載其中一個屬性文件:@PropertySource({"classpath*:application-connector-dev.properties"}) 找不到問題我的問題實際上是3分層的:如何在依賴項 jar 中加載屬性文件?如果屬性文件的名稱與 application.properties 的名稱不同,如何加載屬性文件的分析版本?例如,應(yīng)用程序連接器屬性如何組合問題 1 和 2 中的答案,將屬性的分析版本加載到 jar 中?如果需要進(jìn)一步解釋,請詢問。答我選擇了接受的答案中給出的方法。我剛剛為包含所需值的 dev,tst,prd 配置文件創(chuàng)建了 3 個配置,并使用正確的配置文件注釋了配置文件。
查看完整描述

3 回答

?
白衣染霜花

TA貢獻(xiàn)1796條經(jīng)驗 獲得超10個贊

您正在使用@Configuration帶注釋的類。也許您可以為每個配置文件提供一個。下面是一個示例:


@Configuration

@Profile("profileA")

@PropertySource({"classpath:application-profileA.properties"})

public class ConfigurationProfileA{

 @Value("${target.url}")

 String url;

 @Value("${target.usr}")

 String usr;

 @Value("${target.key}")

 String key;


 @Bean

 public TargetConnector connector() {

   return new TargetConnector(url, usr, key);

 }

}

對配置文件B執(zhí)行相同的操作(也許您可以更好地構(gòu)建它,但這里的關(guān)鍵點是注釋@Profile(“”)和@PropertySource(“”))


一旦你有了配置類,Spring將使用你想要的配置類,只需填寫 -spring.profiles.active=profileA(或你在@Profile(“)注釋中編寫的配置文件的名稱)


查看完整回答
反對 回復(fù) 2022-09-22
?
侃侃無極

TA貢獻(xiàn)2051條經(jīng)驗 獲得超10個贊

我認(rèn)為這行中有一個拼寫錯誤@PropertySource({“類路徑*:應(yīng)用程序連接器-dev.properties”})請通過刪除星號進(jìn)行檢查。


查看完整回答
反對 回復(fù) 2022-09-22
?
大話西游666

TA貢獻(xiàn)1817條經(jīng)驗 獲得超14個贊

為了使用特定配置文件運行,您可以使用例如選項運行-spring.profiles.active=dev

如果您不使用配置文件運行,它將加載您似乎沒有的默認(rèn)配置文件。application.properties

此外,建議始終具有應(yīng)用程序.properties,并在其中放入公共屬性和將在其他屬性文件中重寫的默認(rèn)值。

另一個錯誤是如何分配帶有注釋的屬性,您需要使用@Value@Value("${PROPERTY_FROM_PROPERTIES_FILE}")


查看完整回答
反對 回復(fù) 2022-09-22
  • 3 回答
  • 0 關(guān)注
  • 147 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號