SpringBoot入门学习笔记-4-application配置的读取
Springboot读取配置文件,@Value Environment读取 @ConfigurationPropertiest三种方式
·
将一些全局变量在配置文件中定义,供全局使用。
1、application.yml配置变量,@Value读取。
application.yml配置:
# application.yml
spring:
application:
name: laoluo-base
server:
port: 9090
#自定义的一些全局变量
my-path:
oss: aliyun
file: aliyuncs
img: centos
比如上这个myPath变量组下面有三个变量,那么我们就可以通过@Value(${xxx})来获取。
@Value("${my-path.oss}")
private String osPath;
@GetMapping("/demo1")
public String yamlDemo1 (){
return osPath;
};
2、application.yml配置多个变量时,可以用@ConfigurationProperties配置类读取。
@Component
@ConfigurationProperties(prefix="my-path")
public class MyPath {
private String oss;
private String file;
public void setFile(String file) {
this.file = file;
}
public void setOss(String oss) {
this.oss = oss;
}
public String getFile() {
return file;
}
public String getOss() {
return oss;
}
}
注意:要加@Componet或@Service使注入容器。同时要用setter(setXXX)。
然后,我们在Controller就可以使用了:
@RestController
@RequestMapping("/yaml")
public class GetYaml {
@Resource
private MyPath myPath;
@GetMapping("/demo2")
public String yamlDemo2 (){
// MyPath 是一个配置类
return myPath.getOss();
};
}
注意:myPah不可以通过new对象创建,只能@Resource或@Autowired自动装配。
同时,添加依赖支持:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
当然,我们也可以不使用ConfigurationProperties这个配置,而是使用@Config +@Value在配置类中引用。只是这样效率不高,示例如下:
3、通过Environment读取
所有在配置文件中生效的属性,都可以通过Environment读取。
@GetMapping("/demo3")
public String yamlDemo3 (){
// environment 是系统自带的环境配置类
return environment.getProperty("my-path.file");
}
4、springboot共有5种方式读取
另外两种是原生方式读取、@PropertySource读取。但一般不常用,可以参见:(5条消息) SpringBoot 读取配置文件的 5 种方法!_springboot读取外部配置文件_肥肥技术宅的博客-CSDN博客
更多推荐
已为社区贡献1条内容
所有评论(0)