读取 application 文件
在 application.yml 或者 properties 文件中添加:
info.address=USA
info.company=Spring
info.degree=high
@Value 注解读取方式
1. `import org.springframework.beans.factory.annotation.Value;`
2. `import org.springframework.stereotype.Component;`
4. `@Component`
5. `publicclassInfoConfig1{`
7. `@Value("${info.address}")`
8. `privateString address;`
10. `@Value("${info.company}")`
11. `privateString company;`
13. `@Value("${info.degree}")`
14. `privateString degree;`
16. `publicString getAddress(){`
17. `return address;`
18. `}`
20. `publicvoid setAddress(String address){`
21. `this.address = address;`
22. `}`
24. `publicString getCompany(){`
25. `return company;`
26. `}`
28. `publicvoid setCompany(String company){`
29. `this.company = company;`
30. `}`
32. `publicString getDegree(){`
33. `return degree;`
34. `}`
36. `publicvoid setDegree(String degree){`
37. `this.degree = degree;`
38. `}`
40. `}`
@ConfigurationProperties 注解读取方式
-
@Component
-
@ConfigurationProperties(prefix ="info")
-
publicclassInfoConfig2{
-
privateString address;
-
privateString company;
-
privateString degree;
-
publicString getAddress(){
-
return address;
-
}
-
publicvoid setAddress(String address){
-
this.address = address;
-
}
-
publicString getCompany(){
-
return company;
-
}
-
publicvoid setCompany(String company){
-
this.company = company;
-
}
-
publicString getDegree(){
-
return degree;
-
}
-
publicvoid setDegree(String degree){
-
this.degree = degree;
-
}
-
}
读取指定文件
资源目录下建立 config/db-config.properties:
db.username=root
db.password=123456
@PropertySource+@Value 注解读取方式
-
@Component
-
@PropertySource(value ={"config/db-config.properties"})
-
publicclassDBConfig1{
-
@Value("${db.username}")
-
privateString username;
-
@Value("${db.password}")
-
privateString password;
-
publicString getUsername(){
-
return username;
-
}
-
publicvoid setUsername(String username){
-
this.username = username;
-
}
-
publicString getPassword(){
-
return password;
-
}
-
publicvoid setPassword(String password){
-
this.password = password;
-
}
-
}
注意:@PropertySource 不支持 yml 文件读取。
@PropertySource+@ConfigurationProperties 注解读取方式
-
@Component
-
@ConfigurationProperties(prefix ="db")
-
@PropertySource(value ={"config/db-config.properties"})
-
publicclassDBConfig2{
-
privateString username;
-
privateString password;
-
publicString getUsername(){
-
return username;
-
}
-
publicvoid setUsername(String username){
-
this.username = username;
-
}
-
publicString getPassword(){
-
return password;
-
}
-
publicvoid setPassword(String password){
-
this.password = password;
-
}
-
}
Environment 读取方式
以上所有加载出来的配置都可以通过 Environment 注入获取到。
-
@Autowired
-
privateEnvironment env;
-
// 获取参数
-
String getProperty(String key);
总结
从以上示例来看,Spring Boot 可以通过 @PropertySource,@Value,@Environment,@ConfigurationProperties 来绑定变量