官术网_书友最值得收藏!

Order of evaluation for overridden properties

Let's see the following order of evaluation for overridden properties:

  1. Defined properties for the Devtools global settings in your home directory
  2. Defined properties for @TestPropertySource annotations on your tests
  3. Properties as command-line arguments
  4. Defined properties from SPRING_APPLICATION_JSON
  5. The properties with ServletConfig init parameters
  6. The properties with ServletContext init parameters
  7. JNDI attributes from java:comp/env
  8. Java system properties
  9. OS environment variables
  10. Property file(s)—including application.properties and its YAML variant

This preceding list is in order of precedence. That means if you set any property from a source higher in the list, Spring will override the same property defined in the source lower in the list. The test environment and command-line arguments override properties from any other property source.

Let's see the following order of evolution of the properties file and YAML variants:

  1. A RandomValuePropertySource class that injects properties with random value into configuration file define as random.*
  2. Profile-specific application properties outside of your packaged JAR, that is, in the /config subdirectory of the directory from which the application is run (application-{profile}.properties and YAML variants)

Select a profile by executing the JAR with param Dspring.profiles.active=dev or setting the property spring.profiles.active=dev.

  1. Profile-specific application properties outside of your packaged JAR but in a directory from which the application is run (application-{profile}.properties and YAML variants)
  2. Profile-specific application properties packaged inside your JAR but in a package named config (application-{profile}.properties and YAML variants)
  3. Profile-specific application properties packaged inside your JAR but at the root of the classpath (application-{profile}.properties and YAML variants)
  4. Application properties outside of your packaged JAR, that is, in the /config subdirectory of the directory from which the application is run (application.properties and YAML variants)
  5. Application properties outside of your packaged JAR but in a directory from which the application is run (application.properties and YAML variants)
  1. Application properties packaged inside your JAR but in a package named config (application.properties and YAML variants)
  2. Application properties packaged inside your JAR but at the root of the classpath (application.properties and YAML variants)
  3. @PropertySource annotations on your @Configuration classes
  4. Default properties (specified using SpringApplication.setDefaultProperties)

According to the order of precedence, if you set any properties in a profile-specific application-{profile}.properties will override the same properties set in an application.properties file at the same location as the application-{profile}.properties file.

Again, this list is in order of precedence. That is, an application.properties file in a /config subdirectory will override the same properties set in a application.properties file in the application's classpath.

Let's see how to customize the name of the application property file (application.properties).

主站蜘蛛池模板: 方城县| 岑巩县| 太和县| 广德县| 恩平市| 泸溪县| 铜鼓县| 门头沟区| 陕西省| 唐海县| 兴安县| 石台县| 英德市| 潍坊市| 旬阳县| 湖州市| 镇雄县| 阜宁县| 荔浦县| 莎车县| 北京市| 龙里县| 曲周县| 禹城市| 班戈县| 雅安市| 元氏县| 伊春市| 鱼台县| 沁水县| 佛冈县| 会昌县| 武陟县| 广东省| 随州市| 宾川县| 镇康县| 南岸区| 彭山县| 百色市| 泊头市|