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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在初始化時(shí)加載 Spring Boot 屬性并尊重所有屬性并根據(jù)屬性文件中的值控制

在初始化時(shí)加載 Spring Boot 屬性并尊重所有屬性并根據(jù)屬性文件中的值控制

富國(guó)滬深 2022-06-04 15:24:13
我們正在使用@PropertySources. 現(xiàn)在我想@Aspect基于屬性啟用/禁用。我嘗試使用@ConditionalOnExpressionwhich 不起作用。我通過(guò)創(chuàng)建一個(gè)propertyplaceholderconfig. 即使在相同的情況下,它也不起作用。然后我嘗試@profile了最初也沒(méi)有工作。我想出的是,這些變量在啟動(dòng)時(shí)propertysource或propertyplaceholder在啟動(dòng)時(shí)使用 bean 時(shí)并未初始化。某些變量總是被忽略,例如(logging.file)。但@Value工作正常。為了設(shè)置這些變量,我必須將它們作為 JVM 參數(shù)傳遞。所以我的問(wèn)題是:1. 如何讓 spring 在啟動(dòng)時(shí)始終讀取指定的屬性文件并尊重所有這些文件?2.這是啟用/禁用的最佳方式@Aspect。使用@profileor@ConditionalOnExpression還是別的什么?目前,我們logging.file在 main 方法中進(jìn)行設(shè)置,因?yàn)樗男袨榉绞揭蚕嗤5悄銈冎肋@不是正確的方法,因?yàn)槲易罱K可能會(huì)像這樣一個(gè)一個(gè)地添加屬性。我想將所有屬性放入外部文件中,以便 spring 讀取這些文件并設(shè)置其屬性。我們的物業(yè)結(jié)構(gòu):common.properties #這個(gè)有所有通用屬性service.properties #特定于服務(wù)的屬性。這還將包含來(lái)自 common.properties 的現(xiàn)有屬性,這些屬性將被覆蓋。我知道我可以使用個(gè)人資料。但是,我們希望將屬性保留在外部,如果您要更改屬性,則需要重新啟動(dòng)服務(wù)。我也不想將變量作為 JVM 參數(shù)傳遞,然后我必須以這種方式傳遞大部分變量。傳遞 -Dspring.config.location 也很困難,common.properties因?yàn)閟ervice.properties每個(gè)服務(wù)都使用了“service.properties”文件名。
查看完整描述

1 回答

?
料青山看我應(yīng)如是

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超8個(gè)贊

似乎 Spring 默認(rèn)會(huì)在初始化時(shí)加載一些屬性,除非您專門(mén)編寫(xiě)邏輯來(lái)覆蓋它們(就像我在 中寫(xiě)的那樣MainClass.java,否則沒(méi)有選項(xiàng)可以覆蓋這些屬性。其中一些包括(logging.file,@ConditionalonExpression 中使用的鍵)。

一些有自己挑戰(zhàn)的技巧:

  1. 在類(lèi)路徑中指定屬性application.properties。在早期階段加載的變量總是從此文件中讀取。挑戰(zhàn):我已將所有屬性緊密耦合到 jar 中,為了更改值,我必須重新編譯并重新啟動(dòng) Jar。

  2. 使用配置文件并定義application.propertiesapplication-profile.properties挑戰(zhàn):我必須創(chuàng)建這么多配置文件,但之前的挑戰(zhàn)仍然存在。

  3. 將屬性值作為 JVM 參數(shù)傳遞為-Dproperty.key=value挑戰(zhàn):認(rèn)真嗎?我應(yīng)該發(fā)送多少屬性作為 JVM 參數(shù)?

  4. 實(shí)現(xiàn)ApplicationContextInitialize和覆蓋initialize方法。挑戰(zhàn):不建議覆蓋 Spring 的默認(rèn)行為,并且僅將其用于讀取屬性文件是不是有點(diǎn)矯枉過(guò)正?

解決方案:

用于-Dspring.config.location指定屬性文件。在這種情況下,spring 總是只從指定的位置讀取屬性。您也可以提供多個(gè)屬性文件。有關(guān)更多詳細(xì)信息,請(qǐng)參閱此內(nèi)容。如果您在目錄彈簧以相反的順序加載它們時(shí)給出屬性位置,似乎。但是,如果您指定文件,它將遵循指定的順序。

注意:所有這些都可以組合在一起。要了解優(yōu)先級(jí),請(qǐng)參閱此


查看完整回答
反對(duì) 回復(fù) 2022-06-04
  • 1 回答
  • 0 關(guān)注
  • 143 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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