Springboot2.X —读取配置文件

本文介绍了如何在Java项目中通过@ConfigurationProperties和@Component注解从YML配置文件中读取属性值,使得配置文件的读取方式如同使用常量一样简单。在示例中,展示了读取oyj.name和oyj.age的过程,并在启动类中进行了测试,成功获取到配置的值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,前言

最近在做项目的时候,用到了读取配置文件这个功能,发现网上的博客读取配置文件的方式有很多种,但是由于时间不一致,导致读取文件的方式也不同,这里列出我个人觉得比较好的方法来,就像跟使用常量一样,直接可以把配置文件的属性通过 点  来获取。

 

二,具体操作

第一步,先看配置文件

oyj:
  name: oujiji
  age: 18

我这个是yml的配置文件,通过一种key-value的形式来配置,而且在结构上更加有层次感。我们的目标就要是读取name和age这两个值

 

第二步,编写读取配置文件

@ConfigurationProperties(prefix = "oyj")
@Component
public class TestConfig {

    public static String name;
    public static String age;

    public String getName(){
        return TestConfig.name;
    }

    public void setName(String name){
        TestConfig.name = name;
    }

    public String getAge(){
        return TestConfig.age;
    }

    public void setAge(String age){
        TestConfig.age = age;
    }

}

使用@ConfigurationProperties注解来读取配置文件,这个prefix就是配置文件里要读取内容的前缀。这里有个地方要注意一下,就是这个注解要和@Component注解一起使用,否则是会报错的。

因为最终目标是通过  类名.属性名  来使用,所以属性我是使用静态的。这里也有一个小坑,这里的属性不能用lombok工具来自动生成属性,否则是会获取不到的,具体是什么原因还没搞清楚,如果有大佬知道了请指教一下。

 

第三步,测试获取的属性

@SpringBootApplication(scanBasePackages = "vip.msmhk",exclude = {DataSourceAutoConfiguration.class})
public class UploadApplication {
    public static void main(String[] args) {
        SpringApplication.run(UploadApplication.class, args);
        System.out.println(TestConfig.age);
        System.out.println(TestConfig.name);
    }
}

我这里是直接在启动类里用一个属性的读取了。

最后,可以看到属性正确的读取出来了。

 

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值