每个环境都有不同的配置服务器。每个Spring启动应用程序应针对其相应的配置服务器。我试图通过在bootstrap.properties文件中设置配置文件来实现这一点,例如:
spring.application.name=app-name
spring.cloud.config.uri=http://default-config-server.com
---
spring.profiles=dev
spring.cloud.config.uri=http://dev-config-server.com
---
spring.profiles=stage
spring.cloud.config.uri=http://stage-config-server.com
---
spring.profiles=prod
spring.cloud.config.uri=http://prod-config-server.com
然后我设置cla -Dspring.profiles.active=dev
但是加载的配置服务器始终是文件中设置的最后一个(即prod配置服务器将在上面的设置中加载,然后如果prod被删除,阶段将加载)。
是否可以为云配置服务器设置引导配置文件?我跟着this example但似乎无法让它运转起来。对于它的价值,这些配置文件可以很好地加载正确的配置(即如果开发配置文件处于活动状态,则会加载app-name-dev.properties),但是没有从正确的配置服务器中提取
答案 0 :(得分:13)
在单个文件中指定不同的配置文件仅支持YAML文件,并且不适用于属性文件。对于属性文件,请指定特定于环境bootstrap.properties
以覆盖默认bootstrap.properties
的属性。
因此,在您的情况下,您将获得4个文件bootstrap-prod.properties
,bootstrap-stage.properties
,bootstrap-dev.properties
和bootstrap.properties
。
然而,除此之外,您还可以仅提供默认-Dspring.cloud.config.uri=<desired-uri>
,并在启动应用程序时通过将java -jar <your-app>.jar -Dspring.cloud.config.uri=<desired-url>
传递给您的应用程序来覆盖该属性。
void CreateAccountGUI()
{
GUI.Box(new Rect(320, 120, 400, 380), "Create Account");
GUI.Label(new Rect(390, 200, 220, 23), "Email");
CEmail = GUI.TextField(new Rect(390, 225, 220, 23), CEmail);
GUI.Label(new Rect(390, 255, 220, 23), "Password");
CPassword = GUI.TextField(new Rect(390, 280, 220, 23), CPassword);
GUI.Label(new Rect(390, 310, 220, 23), "Confirm Email");
ConfirmEmail = GUI.TextField(new Rect(390, 340, 220, 23), ConfirmEmail);
GUI.Label(new Rect(390, 370, 220, 23), "Confirm Password");
ConfirmPass = GUI.TextField(new Rect(390, 400, 220, 23), ConfirmPass);
if (GUI.Button(new Rect(370, 460, 120, 25), "Create Account"))
{
if (ConfirmPass == CPassword && ConfirmEmail == CEmail)
{
StartCoroutine("CreateAccount");
}
else
{
//StartCoroutine();
}
}
if (GUI.Button(new Rect(520, 460, 120, 25), "Back"))
{
currentMenu = "Login";
}
}
这将优先于默认配置值。
答案 1 :(得分:3)
$notifications = auth()->user()->notifications()->orderBy('created_at','desc')->get()->toArray();
bootstrap.yml
I solved a similar problem with an environment variable in Docker.
Dockerfile
spring:
application:
name: dummy_service
cloud:
config:
uri: ${CONFIG_SERVER_URL:http://localhost:8888/}
enabled: true
profiles:
active: ${SPR_PROFILE:dev}
多克尔-compose.yml
ENV CONFIG_SERVER_URL=""
ENV SPR_PROFILE=""
答案 2 :(得分:0)
@LarryW(我无法回答相同的评论):
我猜想显式添加该属性的好处是,在不设置环境变量的情况下,它允许您添加默认值(在本例中为“ dev”)。