为了简化内部开发,我正在考虑为 Spring Boot 开发一个薄层/客户启动程序。 这个自定义启动器只依赖于一些引导启动器和我们需要的一些其他依赖项(外部和内部)。
无论如何,下一步我要做的是让这个自定义启动器包含一个 application.properties 配置,其中包含我们要在我们的项目中应用的默认设置。 我希望这个配置文件能够自动获取而不需要明确引用它。当然应该可以覆盖实际项目中的属性。
Boot 是否已经为此轻松提供了一些东西?
注意:我已经有了扩展 Boot 的 SpringApplication 的“自定义”应用程序;所以如果我可以这样配置就没问题。
最佳答案
Spring Boot 使用 specific order 查找属性:
- 命令行参数
- Java 系统属性(
System.getProperties()
) - 操作系统环境变量
- 来自
java:comp/env
的 JNDI 属性 RandomValuePropertySource
仅在random.*
中具有属性
- 打包 jar 之外的应用程序属性(
application.properties
,包括 YAML 和配置文件变体) - 打包在您的 jar 中的应用程序属性(
application.properties
包括 YAML 和配置文件变体) @PropertySource
注释在您的@Configuration
类上- 默认属性(使用
SpringApplication.setDefaultProperties
指定)
为了让使用您的自定义启动器的项目在如何覆盖默认设置方面具有最大的灵 active ,您应该使用一种尽可能接近上述列表末尾的机制。
鉴于您已经拥有自己的 SpringApplication
子类,我将使用 SpringApplication.setDefaultProperties(Properties)
来自该子类。
关于spring-boot - 如何通过例如配置默认 application.properties定制启动器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26129548/