gpt4 book ai didi

Spring Boot 和外部配置

转载 作者:行者123 更新时间:2023-12-02 07:00:16 27 4
gpt4 key购买 nike

我正在尝试制作一个 Spring Boot 应用程序。一旦我部署到 fat jar 文件(其中包含所有内容),一切都很好。但是,我真正想要的是配置文件位于外部。例如我有以下目录结构:

bin - contains startup and shutdown scripts
conf - all configurations. i.e. application.properties, logback.xml i18n.properties
logs - log files
libs - app.jar

如果我使用此目录结构并使用执行 jar

java -cp ./conf -jar ../libs/app.jar

那么conf目录中的属性不会被加载或识别。有没有更好的方法来维护上面的目录结构?或者,替代/最佳实践是什么?

最佳答案

Boot external config就是您正在寻找的。

特别提到:

SpringApplication will load properties from application.properties files in the following locations and add them to the Spring Environment:

  • A /config subdir of the current directory.
  • The current directory
  • A classpath /config package
  • The classpath root

所以我想说在类路径上添加配置文件夹是很好的一步。他们应该找到 application.properties并自动加载。

对于我使用的不同配置文件:

@Configuration
@EnableAutoConfiguration
@PropertySource({
"classpath:path/some.properties",
"classpath:another/path/xmlProperties.xml"
})
public class MyConfiguration {
// ...
}

编辑:正如戴夫指出的(感谢戴夫!)有 -cp-jar,所以你不能像那样将它添加到类路径中。但还有一些选择。这应该可以帮助您解决问题:Call "java -jar MyFile.jar" with additional classpath option .

此外@PropertySource如果我没记错的话,不需要资源是类路径资源。

关于Spring Boot 和外部配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25345955/

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