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();
}
}
结果:
原文地址:https://blog.csdn.net/Atlasgorov/article/details/143818472
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!