springboot项目中引入配置文件数据的方式
yml中引用变量
1. 直接在当前文件中定义然后使用格式 ${} 引用
2. 如果使用\t 转义不成功可以添加双引号
读取yml单个属性数据
使用@Value注解获取单个属性值,格式${一级属性名.二级属性名}
@Value("${country}")
private String country;
@Value("${server.port}")
private String port;
public String getYml(){
return "yml.country:"+country+". <br>"+"yml.server.port:"+port;
}
读取yml所有配置
使用Environment导入所有配置
@Autowired
private Environment env;
@GetMapping("/yml")
public String getYml(){
return ".<br> env:"+env.getProperty("server.port");
}
读取yml中的引用类型 (常用)
1. 使用@ConfigurationProperties注解绑定配置信息到封装类中。
2. 封装需要定义为Spring管理的bean,否则无法进行属性注入
@Autowired
private YmlDataSource dataSource;
@GetMapping("/ymlobj")
public String getYmlV2(){
return "通过定义组件的方式获取yml属性:"+dataSource.toString();
}
package com.example.springbootm4;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "datasource") // prefix 指定对象名
public class YmlDataSource {
private String driver;
private String url;
private String username;
private String password;
public String getDriver() {
return driver;
}
public void setDriver(String driver) {
this.driver = driver;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getUsername() {
return username;
}
public void setUsername(String username){
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString(){
return "driver:"+driver +"<br>url:"+this.url +"<br> username:"+this.username +"<br> password"+this.password;
}
}