SpringBoot获取配置文件中的配置项的常用方式

 更新时间:2024年11月18日 09:10:55   作者: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获取配置文件配置项内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java 线程死锁的问题解决办法

    Java 线程死锁的问题解决办法

    这篇文章主要介绍了 Java 线程死锁的问题解决办法的相关资料,希望通过本大家能帮助到大家,遇到类似问题能够解决,需要的朋友可以参考下
    2017-09-09
  • IDEA集成Sonar的完整流程

    IDEA集成Sonar的完整流程

    这篇文章主要介绍了IDEA集成Sonar的完整流程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • spring boot 下支付宝的开箱既用环境

    spring boot 下支付宝的开箱既用环境

    这篇文章主要介绍了spring boot 下支付宝的开箱既用环境包括使用场景和使用技巧,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2017-10-10
  • java连接Oracle数据库的方法解析

    java连接Oracle数据库的方法解析

    本文主要对java连接Oracle数据库方法进行步骤解析,具有很好的参考价值,需要的朋友一起来看下吧
    2016-12-12
  • java异步调用的4种实现方法

    java异步调用的4种实现方法

    日常开发中,会经常遇到说,前台调服务,本文主要介绍了java异步调用的4种实现方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • 金三银四复工高频面试题java算法LeetCode396旋转函数

    金三银四复工高频面试题java算法LeetCode396旋转函数

    这篇文章主要为大家介绍了金三银四复工高频面试题之java算法题解LeetCode396旋转函数,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • Java代码实现四种限流算法详细介绍

    Java代码实现四种限流算法详细介绍

    本文主要介绍了Java代码实现四种限流算法详细介绍,包含固定窗口限流,滑动窗口限流,漏桶限流,令牌桶限流,具有一定的参考价值,感兴趣的可以了解一下
    2024-05-05
  • Java中对象的序列化详解及实例

    Java中对象的序列化详解及实例

    这篇文章主要介绍了 Java中对象的序列化详解及实例的相关资料,需要的朋友可以参考下
    2017-04-04
  • Spring中的声明式事务控制详解

    Spring中的声明式事务控制详解

    这篇文章主要介绍了Spring中的声明式事务控制详解,Spring的声明式事务顾名思义就是采用声明的方式来处理事务,这里所说的声明,就是指在配置文件中声明,用在Spring配置文件中声明式的事务处理来代替代码是的处理事务,需要的朋友可以参考下
    2024-01-01
  • 浅谈JVM系列之从汇编角度分析NullCheck

    浅谈JVM系列之从汇编角度分析NullCheck

    在virtual call中执行nullcheck的时候,如果已经知道传递的参数是非空的。JIT会对代码进行优化吗?本文将详细介绍JVM系列之从汇编角度分析NullCheck。
    2021-06-06

最新评论