spring boot是否支持同时使用属性和yml文件?

时间:2014-08-10 18:52:10

标签: java yaml configuration-files spring-boot properties-file

我有一个Spring启动应用程序,我想同时使用yml文件作为我的应用程序属性,也希望使用普通应用程序 - $ {profile} .properties文件集来配置我的应用程序。

所以我的问题是可以做到这一点,如果是这样,你如何配置spring boot以查找yml文件和属性,并将它们合并到每个环境中的一个集合中?

至于为什么我想/需要同时使用两者,这是因为我喜欢yml文件的灵活性和易用性,但内部组件(用于加密)需要使用属性文件集。

我确实看到了这一点YAML files can’t be loaded via the @PropertySource annotation

但没有说明两者是否可以一起使用。

请提供有关如何使其正常工作的详细配置(XML或Java配置)。

TIA,

斯科特

3 个答案:

答案 0 :(得分:21)

我可以回答我自己的问题,因为它只是按照您的预期运作。 application.yml文件和相应的应用程序 - $ {profile} .properties都被加载并合并到环境中。

Spring boot让这项工作自然而然。它通常会。真棒!

斯科特

答案 1 :(得分:3)

是的,您可以在不进行任何配置的情况下运行它们。

在Spring Boot中,它按以下顺序选择.properties或.yaml文件:

应用程序 - {轮廓} {属性| YML}。 。应用{属性| YML}

答案 2 :(得分:1)

是的,您可以在同一项目中同时使用两者。

  • 同时使用YML和属性时,例如说
    同一时间同时使用application.yml和application.properties
    项目,第一个application.yml将在以后加载
    application.properties将被加载
  • 要注意的重要一点是,如果application.yml和 application.properties具有相同的键,例如 application.yml 具有 spring.app.name = testYML application.properties 具有相同的 spring.app.name = testProperties 时间在同一项目中,那么application.yml值将被覆盖 按application.properties值,因为它最后已加载。
  • 以及 spring.app.name = testProperties 中的值。