实际上有一点问题。
我想切换我的引导程序.yml 的网址
它看起来如下:
spring:
application:
name: <project-name>
profiles:
active: dev
cloud:
config:
uri: http://<git-repository>:8080
fail-fast: false
这有效,但我想要一个属性或任何可以切换的东西,如果在本地或其他环境中。
我尝试查看此文档,但没有看到任何适合我的工作。
我认为SpringCloud与任何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 引导 jar,例如 :java -jar ... -Dspring.cloud.bootstrap.location=bootstrap-dev.yml ...
。
这将覆盖该文件的当前位置。
2(利用弹簧启动配置文件功能:bootstrap.yml
兼容。 例如,如果启用了开发配置文件,则将使用类路径中的bootstrap-dev.properties
。
我倾向于使用第一种方法,因为这对于非 Spring 引导用户来说更明确。
来源 : 1.3 更改引导属性的位置