您的位置:首页 > 编程语言 > Java开发

Spring boot读取配置文件总结

2017-06-08 23:56 573 查看

Spring boot读取配置文件总结

首先需要说明一下Spring boot读取PropertySource的顺序:

Devtools global settings properties on your home directory (~/.spring-boot-devtools.properties when devtools is active).

开发工具全局设置的属性

@TestPropertySource设置test类属性的文件

@SpringBootTest#properties注解设置Test类的属性

命令行参数

SPRING_APPLICATION_JSON
的属性

ServletConfig
初始化参数

ServletContext
初始化参数

JNDI参数

Java System Properties

系统环境变量

RandomValuePropertySource
仅包含
random.*
的属性文件

jar包外的application-{profile}.properties文件

jar包内的application-{profile}.properties文件

jar包外的application.properties

jar包内的application.properties

@Configuration
注解的bean上引入的
@PropertySource
引入的属性文件

使用
SpringApplication.setDefaultProperties
设置的默认属性

值得一提的是:

Spring boot支持relaxed binding,所有可以有不同的形式。比如:

@ConfigurationProperties("foo")
public class FooProperties {

private String id;
private String firstName;
private String lastName;

// getters and setters

}


然后可以使用下面的形式进行定义:

nameExample
uniformfoo.id - foo.first-name - foo.last-name
camel casefoo.id - foo.firstName - foo.lastName
underscorefoo.id - foo.first_name - foo.last_name
upper caseFOO_ID - FOO_FIRST-NAME - FOO_LAST-NAME
Spring boot支持松绑定,主要是因为有些property source不支持特定的字符, 有些系统要求属性必须是大写,或者不能包括
.
这个符号。

设置profile的方式

-Dspring.profiles.active=env

这种会读取对应的env属性配置文件

@ActiveProfiles
注解

这种是用来设置通过bean configuration的profile。不会去读取env的配置

文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: