当前位置: 首页 > 知识库问答 >
问题:

如何在引导文件中正确设置不同的Spring配置文件(用于Spring Boot以针对不同的云配置服务器)?

楚方伟
2023-03-14

每个环境都有不同的配置服务器。每个Spring Boot应用程序都应该以其相应的配置服务器为目标。我试图通过在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,则加载stage)。

共有1个答案

蒯翰墨
2023-03-14

在单个文件中指定不同的配置文件只是对YAML文件的支持,不适用于属性文件。对于属性文件,指定环境特定的引导-[profile].properties以覆盖默认bootstrap.properties中的属性。

因此,在您的示例中,您将获得4个文件bootstrap.propertiesbootstrap-propertiesbootstrap-stage.propertiesbootstrap-dev.properties

但是,您也可以只提供缺省的bootstrap.properties,在启动应用程序时,通过向应用程序传递-dspring.cloud.config.uri= 来覆盖该属性。

java -jar <your-app>.jar -Dspring.cloud.config.uri=<desired-url>

这将优先于默认配置的值。

 类似资料:
  • 问题内容: 在我的application.yml中,我得到了: 还有其他一些使用不同的配置文件。启动应用程序时,我得到以下信息: 如果我只是将log4j2.xml放在已分析的文件旁边,则它可以工作。所以我认为这是我错过依赖关系的原因,或者使用log4j2无法实现? 问题答案: 在我这边,我正在使用属性文件而不是Yaml文件。我需要两个日志文件:一个将所有内容记录到控制台,另一个用于记录文件。因此,

  • 因此,在我的微服务中,我必须以configserver的短主机名为目标。 但是,当我在没有docker的IDE中本地运行它们时,短主机名无法解析。 因此,我正在寻找一个解决方案,目标不同的配置服务器根据我的环境。

  • 我正在使用处理。我有大约5个。因此,我将spring cloud config server配置为集中配置。它工作得很好。 配置服务器配置 spring.cloud.config.server.native.search-locations=classpath://common-config server.port=8888 现在的问题是,我有两个环境和,并且我创建了和,根据spring文档,我需

  • 我正在尝试将我的应用程序配置为具有两个构建配置文件:开发和生产。为此,我在src/main/resources文件夹下创建了两个子目录:src/main/resources/development和src/main/resources/production。每个子目录都有自己的。属性文件。 我使用命令mvn install-P${profile_here}构建应用程序 Maven将与所选配置文件相

  • 我刚刚将我们的Spring Boot项目从引导升级到v2.6.2,从Spring Cloud升级到2021.0.0。 现在,我的远程配置获取没有任何效果,应用程序也无法获取正确的属性文件 [main]INFO o. s. c. c. c. ConfigServiceProperty tySourceLocator-从服务器获取配置:http://localhost:8080 [main]WARN

  • 问题内容: 我正在使用不同的Maven配置文件将我的应用程序部署到不同的环境。(使用weblogic-maven-plugin,但是我认为这并不重要) 在应用程序中,我使用Spring Web Services。现在,我想根据环境更改端点。(端点在Spring的applicationContext.xml中定义) 我的想法是从属性文件中读取值。该属性文件将在Mavens软件包阶段写入(或复制)。