gpt4 book ai didi

java - 以编程方式设置 "spring.config.name"属性不起作用

转载 作者:行者123 更新时间:2023-11-30 10:20:08 25 4
gpt4 key购买 nike

根据 this blog post从 2017 年 12 月开始,可以像这样以编程方式更改用于搜索 Spring Boot 配置文件的名称:

import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;

@SpringBootApplication
public class Application {
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class)
.properties("spring.config.name:conf")
.build()
.run(args);
}
}

我已经尝试使用 Spring Boot 版本 1.5.9-RELEASE,但这不起作用。将 spring.config.name 设置为参数确实有效:

mvn spring-boot:run -Dspring.config.name=conf

但是,我无法控制启动时传递给我的 Spring Boot 应用程序的参数,因此这不是一个选项。

是否不再可能以编程方式设置 spring.config.name,我是否遗漏了什么,或者这是一个错误?

最佳答案

没有直接回答问题,但我最终发现了一个解决方法。通过将其添加到参数来设置 spring.config.name 确实有效:

package com.ups.cep;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {
public static void main(String[] args) {
List<String> arguments = new ArrayList<>(Arrays.asList(args));
arguments.add("-Dspring.config.name=conf");
SpringApplication.run(Application.class, arguments.toArray(new String[arguments.size()]));
}
}

关于java - 以编程方式设置 "spring.config.name"属性不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48347171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com