SpringBoot获取配置文件中的配置项的常用方式
作者:Atlasgorov
这篇文章主要介绍了SpringBoot获取配置文件中的配置项的常用方式,并通过代码示例讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
SpringBoot中获取配置项的常用方式
主要是@Value注解、使用Environment对象、@ConfigurationProperties注解
在application.properties配置文件中,有一个配置项:test.config.version=111
配置项的名称是:test.config.version,对应的值为111

在SpringBoot中,如何获取它的具体值?
一、@Value注解
@RestController
@RequestMapping("/test")
@Slf4j
public class TestController {
// 冒号后面可以设置该配置项的默认缺省值,当这个配置项不存在或者值为空的时候,它的值就是冒号后面的值
@Value("test.config.version:222")
private String conf;
@RequestMapping("/config2")
public String getConfig2(){
log.info("test.config.version :{} " , conf);
return conf;
}
}
结果:

二、使用Environment对象
实现EnvironmentAware接口,让spring把environment对象注入到要使用它的bean中,调用getProperty方法获取配置项的值。
@RestController
@RequestMapping("/test")
@Slf4j
public class TestController implements EnvironmentAware {
private Environment environment;
@Override
public void setEnvironment(Environment environment) {
this.environment = environment;
}
@RequestMapping("/config1")
public String getConfig1(){
log.info("test.config.version :{} " ,environment.getProperty("test.config.version"));
return environment.getProperty("test.config.version");
}
}
结果:

三、@ConfigurationProperties注解
写一个配置类,利用@ConfigurationProperties注解来指定该类对应的配置项的前缀,成员变量的名字就是配置项的后缀,这个类的成员变量用于承接对应的配置项的值。
@Data注解是Lombok提供的,可以自动生成getter和setter。
@Component
@ConfigurationProperties(prefix = "test.config")
@Data
public class TestConf {
// 相当于test.config.version的值,就注入到了该成员变量中
private String version;
}
@RestController
@RequestMapping("/test")
@Slf4j
public class TestController implements EnvironmentAware {
@Resource
TestConf testConf;
@RequestMapping("/config3")
public String getConfig3(){
log.info("test.config.version :{} " , testConf.getVersion());
return testConf.getVersion();
}
}
结果:

到此这篇关于SpringBoot获取配置文件中的配置项的常用方式的文章就介绍到这了,更多相关SpringBoot获取配置文件配置项内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
