说明:
Spring Boot里面有两个注解可以读取application.properties或application.yml文件的属性值。
@Value
@ConfigurationProperties
1.@Value
- 基础类型
//配置
nickname=zslaa
age=22
//SpringBoot读取配置
/**
* @Value注解 - 读取application.properties属性
*/
public class ConfigController {
//读取基本类型
@Value("${nickname}")
private String nickname;
@Value("${age}")
private Integer age;
}
- JavaBean类型
//配置
user.nickname=zslaa
user.age=22
/**
* @Value注解 - 读取application.properties属性
*/
@Controller
public class ConfigController {
//读取JavaBean类型
@Value("${user.nickname}")
private String nickname;
@Value("${user.age}")
private Integer age;
}
- 数组/List集合
//配置
user.list=zslaa,jack,rose
/**
* @Value注解 - 读取application.properties属性
*/
@Controller
public class ConfigController {
//读取数组/List集合类型
@Value("#{'${user.list}'.split(',')}")
private List<String> list;
- Map集合
//配置
user.map={nickname:'zslaa',age:22}
/**
1. @Value注解 - 读取application.properties属性
2. 一点教程网 - www.yiidian.com
*/
@Controller
public class ConfigController {
//1.4 读取Map集合类型
@Value("#{${user.map}}")
private Map<String,Object> map;
}
2.ConfigurationProperties
- 基本类型
//配置
nickname=zslaa
age=22
/**
* @ConfigurationProperties注解 - 读取application.properties属性
* 注意:
* 1.prefix:代表属性的前缀,如果user.nickname前缀就是user
* 2.属性名称必须和properties文件的属性名保持一致
* 3.属性必须提供setter方法来注入文件的属性值
*/
@Controller
@ConfigurationProperties(prefix = "")
public class ConfigController {
//读取基本类型
private String nickname;
private Integer age;
public void setNickname(String nickname) {
this.nickname = nickname;
}
public void setAge(Integer age) {
this.age = age;
}
}
- JavaBean类型
//配置
user.nickname=zslaa
user.age=22
/**
* @ConfigurationProperties注解 - 读取application.properties属性
*/
@Controller
@ConfigurationProperties(prefix = "user")
public class ConfigController {
//读取JavaBean类型
private String nickname;
private Integer age;
public void setNickname(String nickname) {
this.nickname = nickname;
}
public void setAge(Integer age) {
this.age = age;
}
- 数组/List集合
//配置
user.list[0]=zslaa
user.list[1]=jack
user.list[2]=rose
/**
* @ConfigurationProperties注解 - 读取application.properties属性
*/
@Controller
@ConfigurationProperties(prefix = "user")
public class ConfigController {
//读取数组/List集合类型
private List<String> list;
public void setList(List<String> list) {
this.list = list;
}
- Map集合
//配置
user.map.nickname=zslaa
user.map.age=22
/**
* @ConfigurationProperties注解 - 读取application.properties属性
*/
@Controller
@ConfigurationProperties(prefix = "user")
public class ConfigController {
//读取Map集合类型
private Map<String,Object> map;
public void setMap(Map<String, Object> map) {
this.map = map;
}