與所有應用程式共用組態
在所有應用程式之間共用組態,會根據您採用的方法而有所不同,如下列主題所述
檔案型儲存庫
對於檔案型(git、svn 和 native)儲存庫,檔案名稱為 application*
(application.properties
、application.yml
、application-*.properties
等等)的資源會在所有用戶端應用程式之間共用。您可以使用這些檔案名稱的資源來設定全域預設值,並視需要讓應用程式專屬檔案覆寫這些預設值。
屬性覆寫 功能也可用於設定全域預設值,並允許佔位符應用程式在本機覆寫它們。
使用「native」profile(本機檔案系統後端)時,您應該使用明確的搜尋位置,該位置不屬於伺服器自身的組態。否則,預設搜尋位置中的 application* 資源會被移除,因為它們是伺服器的一部分。 |
Vault 伺服器
當使用 Vault 作為後端時,您可以將組態放置在 secret/application
中,以與所有應用程式共用組態。例如,如果您執行下列 Vault 命令,則所有使用 Config 伺服器的應用程式都將可以使用屬性 foo
和 baz
$ vault write secret/application foo=bar baz=bam
CredHub 伺服器
當使用 CredHub 作為後端時,您可以將組態放置在 /application/
中,或將其放置在應用程式的 default
profile 中,以與所有應用程式共用組態。例如,如果您執行下列 CredHub 命令,則所有使用 Config 伺服器的應用程式都將可以使用屬性 shared.color1
和 shared.color2
credhub set --name "/application/profile/master/shared" --type=json
value: {"shared.color1": "blue", "shared.color": "red"}
credhub set --name "/my-app/default/master/more-shared" --type=json
value: {"shared.word1": "hello", "shared.word2": "world"}
JDBC 環境儲存庫
若要使用 JDBC 後端共用組態,請將記錄插入資料庫中,並將 'application'
作為應用程式欄位中的值,以用於預期在所有用戶端之間共用的項目。應用程式專屬屬性隨後可以覆寫這些共用組態,從而提供應用程式環境的彈性和控制。
INSERT INTO PROPERTIES (APPLICATION, PROFILE, LABEL, KEY, VALUE)
VALUES ('application', 'default', 'master', 'a.b.c', 'shared-value');
INSERT INTO PROPERTIES (APPLICATION, PROFILE, LABEL, KEY, VALUE)
VALUES ('myapp', 'prod', 'master', 'd.e.f', 'specific-value');
請參閱 JdbcEnvironmentRepository
實作和相關測試,以取得有關使用 JDBC 儲存庫進行設定和組態管理的詳細範例。