原文地址:http://www.yiidian.com/springboot/springboot-properties.html
Spring Boot里面有两个注解可以读取application.properties或application.yml文件的属性值。
- @Value
- @ConfigurationProperties
1 @Value
1.1 基本类型
1)配置
nickname=eric
age=20
2)SpringBoot读取配置
/**
* @Value注解 - 读取application.properties属性
* 一点教程网 - www.yiidian.com
*/
@Controller
public class ConfigController {
//1.1 读取基本类型
@Value("${nickname}")
private String nickname;
@Value("${age}")
private Integer age;
1.2 JavaBean类型
1)配置
user.nickname=jack
user.age=18
2)SpringBoot读取配置
/**
* @Value注解 - 读取application.properties属性
* 一点教程网 - www.yiidian.com
*/
@Controller
public class Config2Controller {
//1.2 读取JavaBean类型
@Value("${user.nickname}")
private String nickname;
@Value("${user.age}")
private Integer age;
```
### 1.3 数组/List集合
1)配置
```properties
user.list=eric,jack,rose
2)SpringBoot读取配置
/**
* @Value注解 - 读取application.properties属性
* 一点教程网 - www.yiidian.com
*/
@Controller
public class Config3Controller {
//1.3 读取数组/List集合类型
@Value("#{'${user.list}'.split(',')}")
private List<String> list;
1.4 Map集合
1)配置
user.map={nickname:'eric',age:20}
2)SpringBoot读取配置
/**
* @Value注解 - 读取application.properties属性
* 一点教程网 - www.yiidian.com
*/
@Controller
public class Config4Controller {
//1.4 读取Map集合类型
@Value("#{${user.map}}")
private Map<String,Object> map;
2 @ConfigurationProperties
2.1 基本类型
1)配置
nickname=eric
age=20
2)SpringBoot读取配置
/**
* @ConfigurationProperties注解 - 读取application.properties属性
* 一点教程网 - www.yiidian.com
*/
@Controller
@ConfigurationProperties(prefix = "")
public class Config5Controller {
//1.1 读取基本类型
private String nickname;
private Integer age;
public void setNickname(String nickname) {
this.nickname = nickname;
}
public void setAge(Integer age) {
this.age = age;
}
注意以下几点:
- prefix:代表属性的前缀,如果user.nickname前缀就是user
属性名称必须和 - properties文件的属性名保持一致
属性必须提供setter方法来注入文件的属性值
2.2 JavaBean类型
1)配置
user.nickname=jack
user.age=18
2)SpringBoot读取配置
/**
* @ConfigurationProperties注解 - 读取application.properties属性
* 一点教程网 - www.yiidian.com
*/
@Controller
@ConfigurationProperties(prefix = "user")
public class Config6Controller {
//1.2 读取JavaBean类型
private String nickname;
private Integer age;
public void setNickname(String nickname) {
this.nickname = nickname;
}
public void setAge(Integer age) {
this.age = age;
}
2.3 数组/List集合
1)配置
user.list2[0]=eric
user.list2[1]=jack
user.list2[2]=rose
2)SpringBoot读取配置
/**
* @ConfigurationProperties注解 - 读取application.properties属性
* 一点教程网 - www.yiidian.com
*/
@Controller
@ConfigurationProperties(prefix = "user")
public class Config7Controller {
//1.3 读取数组/List集合类型
private List<String> list2;
public void setList2(List<String> list2) {
this.list2 = list2;
}
2.4 Map集合
1)配置
user.map2.nickname=eric
user.map2.age=20
```properties
2)SpringBoot读取配置
```java
/**
* @ConfigurationProperties注解 - 读取application.properties属性
* 一点教程网 - www.yiidian.com
*/
@Controller
@ConfigurationProperties(prefix = "user")
public class Config8Controller {
//1.4 读取Map集合类型
private Map<String,Object> map2;
public void setMap2(Map<String, Object> map2) {
this.map2 = map2;
}
源码下载:https://pan.baidu.com/s/1eAwxjQClVt3TxuqtL6VbIA
欢迎关注我的公众号::一点教程。获得独家整理的学习资源和日常干货推送。
如果您对我的系列教程感兴趣,也可以关注我的网站:yiidian.com