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获取配置文件配置项内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
MybatisPlus保存、读取MySQL中的json字段失败问题及解决
这篇文章主要介绍了MybatisPlus保存、读取MySQL中的json字段失败问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-07-07使用Java 8 Lambda表达式将实体映射到DTO的操作
这篇文章主要介绍了使用Java 8 Lambda表达式将实体映射到DTO的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-08-08
最新评论