如何通过例如配置默认的application.properties定制启动器?

时间:2014-09-30 20:30:53

标签: spring-boot

为了简化内部开发,我正在考虑为Spring Boot开发一个薄层/客户启动器。 这个自定义启动器只取决于一些启动启动器和我们需要的一些其他依赖(外部和内部)。

无论如何,我想要做的下一步是这个自定义启动器包含一个application.properties配置,我们希望在我们的项目中应用默认设置。 我希望这个配置文件能够自动获取而不需要明确引用它。当然,应该可以覆盖实际项目中的属性。

Boot是否已经为此提供了一些东西?

注意:我已经有'Custom'Application扩展了Boot的SpringApplication;所以,如果我可以这样配置它就没问题了。

1 个答案:

答案 0 :(得分:2)

Spring Boot使用specific order

查找属性
  1. 命令行参数
  2. Java系统属性(System.getProperties()
  3. 操作系统环境变量
  4. 来自java:comp/env
  5. 的JNDI属性
  6. RandomValuePropertySource
  7. 中包含属性的random.*
  8. 打包jar之外的应用程序属性(application.properties,包括YAML和配置文件变体)
  9. 打包在jar中的应用程序属性(application.properties包括YAML和配置文件变体)
  10. 您在@PropertySource班级上的
  11. @Configuration注释
  12. 默认属性(使用SpringApplication.setDefaultProperties指定)
  13. 要使用自定义启动器为项目提供最大限度地覆盖默认值的灵活性,您应该使用尽可能靠近上面列表末尾的机制。 鉴于您已经拥有自己的SpringApplication子类,我将在该子类中使用SpringApplication.setDefaultProperties(Properties)