Spring编程:springboot属性配置和属性优先级
Posted 志波同学
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring编程:springboot属性配置和属性优先级相关的知识,希望对你有一定的参考价值。
Spring Boot 允许我们外部化程序的配置,以便我们可以在不同的环境中使用相同的应用代码。我们可以使用 properties、YAML、环境变量、命令行参数进行外部化配置。配置的属性值可以通过 @Value 注解直接注入到 beans 中,通过 Spring 环境抽象访问;也可以通过 @ConfigurationProperties 绑定到结构化对象中。
Spring Boot 使用一个非常特殊的 PropertySource 顺序,该顺序用来合理的覆盖属性值。属性优先级由高到低排序如下:
1 .spring-boot-devtools.properties
Devtools global settings properties on your home directory (~/.spring-boot-devtools.properties when devtools is active).
home 目录下的 .spring-boot-devtools.properties 文件优先级最高,但是需要激活 devtools。
2 @TestPropertySource
@TestPropertySource annotations on your tests.
测试时使用。
3 @SpringBootTest
properties attribute on your tests. Available on @SpringBootTest and the test annotations for testing a particular slice of your application.
4 Command line
Command line arguments.
5 SPRING_APPLICATION_JSON
Properties from SPRING_APPLICATION_JSON (inline JSON embedded in an environment variable or system property).
在环境变量、系统属性、命令行参数、JNDI 中配置的 SPRING_APPLICATION_JSON 属性。在 Spring Boot 的文档中有说明,命令行参数、JNDI 中配置的 SPRING_APPLICATION_JSON 也会生效。
6 ServletConfig
ServletConfig init parameters.
7 ServletContext
ServletContext init parameters.
8 JNDI
JNDI attributes from java:comp/env.
9 Java System properties
Java System properties (System.getProperties()).
Java系统属性。
10 OS environment variables
OS environment variables.
操作系统环境变量。
11 RandomValuePropertySource
A RandomValuePropertySource that has properties only in random.*.
12 outside Profile-specific application properties
Profile-specific application properties outside of your packaged jar (application-profile.properties and YAML variants).
13 inside Profile-specific application properties
Profile-specific application properties packaged inside your jar (application-profile.properties and YAML variants).
14 outside Application properties
Application properties outside of your packaged jar (application.properties and YAML variants).
15 inside Application properties
Application properties packaged inside your jar (application.properties and YAML variants).
16 @PropertySource
@PropertySource annotations on your @Configuration classes.
17 Default properties
Default properties (specified by setting SpringApplication.setDefaultProperties).
以上内容参考 Spring Boot 官方文档进行整理,文章内容仅代表个人观点,如有不正之处,欢迎批评指正,谢谢大家。
参考文档
以上是关于Spring编程:springboot属性配置和属性优先级的主要内容,如果未能解决你的问题,请参考以下文章