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

Spring引导覆盖来自附加位置文件的prod属性

孔阳平
2023-03-14

在我的应用程序中,我有以下属性文件:

application.properties
application-prod.properties

在里面我有同样的财产

Spring数据源。password=my dev password#用于默认的
spring数据源。password=${PROD_DATABASE_password}#用于PROD文件

在服务器上,我像这样运行应用程序:

java-jar“myjar.jar”——spring。个人资料。活跃=刺激

到目前为止一切正常。

现在,我想使用一个额外的文件覆盖服务器上的相同属性,如:

java-jar-myjar。罐子——Spring。个人资料。活动=触针--Spring。配置。附加位置=文件:/to/folder/application。属性

但没用!

我试图通过它作为一个java属性,但它也不工作!

java-Dspring。配置。附加位置=文件:/to/folder/application。属性-jar myjar。罐子——Spring。个人资料。活跃=刺激

我错过了什么?

@SpringBootApplication
public class MyApplication {

    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}

我使用的是spring boot2.3.5

更新

当我只引用文件夹时,它会工作:

spring.config.additional文件夹

我认为它只需要文件夹,而不是spring。配置。位置但当我查看代码时,这两个都在ConfigFileApplicationListener中加载了相同的代码:

private Set<String> getSearchLocations() {
    Set<String> locations = getSearchLocations(CONFIG_ADDITIONAL_LOCATION_PROPERTY);
    if (this.environment.containsProperty(CONFIG_LOCATION_PROPERTY)) {
        locations.addAll(getSearchLocations(CONFIG_LOCATION_PROPERTY));
    }
    else {
        locations.addAll(
                asResolvedSet(ConfigFileApplicationListener.this.searchLocations, DEFAULT_SEARCH_LOCATIONS));
    }
    return locations;
}

共有2个答案

杨经武
2023-03-14

试试这个。

$ java -jar myproject.jar --spring.config.location=classpath:/default.properties,classpath:/override.properties

更多详情请参阅本文件

弘焕
2023-03-14

配置文件特定属性优先于默认/附加属性。参考Spring启动外部配置。

您也可以在ConfigFileApplicationListener中看到相同的代码。JAVA

 类似资料:
  • 我的测试属性将被放置在生产属性中的属性覆盖。当时,我两人都给起了名字,但它不起作用,所以我就像这篇文章中说的那样,改成了并使用profile。现在看起来就像贝娄(kotlin): 在中,我只将此属性设置为,而在中,则设置为。 这个测试失败了。完整示例可在github上找到 Thx提前。

  • 我如何覆盖Spring引导的favicon? 否则,WebMvcAutoConfiguration注册faviconRequestHandler bean(请参见源https://github.com/spring-projects/spring-boot/blob/master/spring-boot-autocigure/src/main/java/org/springframework/bo

  • 在spring boot中,我有以下配置文件:application-email.yaml

  • 我有一个包含application.yml的spring boot应用程序。 application.yml内容: 应用程序的内容-private.yml: 根据我的理解,integrations:ecom:api-url是从application-private.yml加载的,即使默认概要文件也有相同的属性。 如果两个配置文件处于活动状态,是否将按照指定配置文件的顺序加载和使用属性? 我的订单:

  • 问题内容: 我正在使用Bootstrap 3,并且有一个显示一些数据的表。在此表中,我已应用了一些JavaScript进行条件格式设置,如果满足条件,则将元素的类设置为“红色” HTML的元素如下: 我现在在文本颜色适用的奇数行上有冲突,但是背景颜色被自举程序中的以下CSS覆盖。 我该如何解决此冲突并确保红色阶级有上风? 问题答案: 您的问题很可能与特异性有关。克里斯·科耶尔(ChrisCoyie

  • > 我有两个控制器(ControllerA和ControllerB) 两个控制器都调用一个服务(MyService)。 MyService调用名为MyRepository的接口,该接口有两个实现(FirstRepository和SecondRepository)。 如何可能在从ControllerA调用服务(MyService)时使用FirstRepository而在调用来自ControllerB