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; }
}