[英]Automatization Spring Cloud Profile
其實有點小問題。
我想切換我的 bootstrap.yml 的 url
它看起來如下:
spring:
application:
name: <project-name>
profiles:
active: dev
cloud:
config:
uri: http://<git-repository>:8080
fail-fast: false
這有效,但我想要一個屬性或任何可以在本地或其他環境中切換的東西。
我嘗試查看此文檔,但沒有看到任何適合我的工作。
我認為 Spring Cloud 與任何 Spring 應用程序沒有任何不同,因此您可以使用 Spring 配置文件。
在這個答案中提出了類似的建議: https : //stackoverflow.com/a/22759706/6908551 。
您可以為您的雲配置 uri 定義一個單獨的.yml
文件,例如cloud-config-dev.yml
、 cloud-config-prod.yml
。 然后,對於 Java 配置,您可以使用以下內容:
@Configuration
public class MyApplicationConfiguration {
@Bean
public static PropertySourcesPlaceholderConfigurer propertyPlaceholderConfigurer() {
String activeProfile = System.getProperty("spring.profiles.active", "production");
String ymlFilename = "cloud-config-" + activeProfile + ".yml";
PropertySourcesPlaceholderConfigurer configurer = new PropertySourcesPlaceholderConfigurer();
configurer.setLocation(new ClassPathResource(ymlFilename));
return configurer;
}
}
我會按環境定義一個 bootstrap.yml 文件。
在src/main/resources
定義一個默認的 bootstrap.yml 並為每個環境定義一個特定的 bootstrap.yml 文件。
然后有多種方式。
不詳盡:
1)對於配置文件不同的每個環境,通過使用預期值指定系統屬性spring.cloud.bootstrap.location
來運行你的 spring boot jar,例如:
java -jar ... -Dspring.cloud.bootstrap.location=bootstrap-dev.yml ...
.
這會覆蓋該文件的當前位置。
2) 利用 Spring Boot 配置文件功能:與bootstrap.yml
兼容。 例如,如果啟用了開發配置文件,則將使用類路徑中的bootstrap-dev.properties
。
我傾向於使用第一種方式,因為這對於非 Spring Boot 用戶來說更為明確。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.