每个环境都有不同的配置服务器。每个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)。
在单个文件中指定不同的配置文件只是对YAML文件的支持,不适用于属性文件。对于属性文件,指定环境特定的引导-[profile].properties
以覆盖默认bootstrap.properties
中的属性。
因此,在您的示例中,您将获得4个文件bootstrap.properties
、bootstrap-properties
、bootstrap-stage.properties
和bootstrap-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软件包阶段写入(或复制)。