gpt4 book ai didi

java - 从命令行设置 Spring 属性文件位置

转载 作者:行者123 更新时间:2023-12-02 04:11:40 28 4
gpt4 key购买 nike

我有一个简单的 Spring 应用程序,可以从属性文件中读取配置值。默认情况下,该文件配置为位于类路径上(配置类上的 @PropertySource("classpath:thefile.properties") 注释)。我希望能够可选使用我可以(但不必)在程序启动时在命令行中指定的其他属性文件。也就是说,我最终想运行这样的东西:

java -jar application.jar --path "some/location/thefile.properties"

现在应该使用指定文件中的值。

我已经尝试在 jar 之前和之后使用 SpringBoot 和 spring.config.location 选项:

java -jar "-Dspring.config.location=file:some/location/thefile.properties" application.jar
  • 继续使用类路径上文件中的值
java -jar application.jar "--spring.config.location=file:some/location/thefile.properties"
  • 提示无法识别的选项

我的主类如下所示:

@SpringBootApplication
public class MainClass {
public static void main(String[] args) {
SpringApplication.run(MainClass.class, args);
// Application code triggered here...
}
}

我不需要使用SpringBoot,我只是想以某种方式设置属性文件位置。任何想法?这有可能吗?

最佳答案

在你的属性类上做这样的事情:

 @Configuration
@PropertySource(value = "file:${myapp.external.config}")

**Command** java -jar -Dmyapp.external.config="C:\yourPath\abc.properties" xyz.jar

如果您有多个外部属性文件,请参见下面的示例

 @Configuration
@PropertySource(value = {"file:${app1.config}", "file:${app2.config}"})

**Command** java -jar -Dapp1.config="C:\yourPath\abc1.properties"
-Dapp2.config="C:\yourPath\abc2.properties" xyz.jar

关于java - 从命令行设置 Spring 属性文件位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56684265/

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