springboot项目读取配置文件内容的3种方法

本文详细介绍了SpringBoot项目中如何从YML配置文件中读取单个、多层、数组及全部数据,包括使用`@Value`注解、`Environment`和`ConfigurationProperties`组件,以及局部配置的获取方式。

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

springboot项目读取配置文件的方法

yml配置文件为例,演示在项目中获取配置文件中的数据的方法,配置文件内容如下:

author: 刚开始入门的小白

springboot:
  name: demo01
  package: 3

user:
  name: zhangsan
  age: 20
  gender: man
  likes:
    - game
    - basketball
    - music
    - read

database:
  book:
    name: 《钢铁是怎样炼成的》
  price: ¥45
  author: 尼古拉·阿列克谢耶维奇·奥斯特洛夫斯基
  ISBN: 12345

1、读取单一数据

单一数据获取比较简单。

单层数据

@RestController
@RequestMapping("/users")
public class UserController {

    @Value("${author}")  //在这里添加上配置文件中要获取的数据,注意:必须要和配置文件中的数据名称一致
    private String result;		//这里变量名可以任取

    @GetMapping
    public String getUserById(){
        System.out.println("读取到的数据为:"+result);		//查看获取到的内容
        return "读取到的数据为:"+result;
    }
}
结果:

访问结果:

在这里插入图片描述

控制台输出:

在这里插入图片描述

多层数据

多层数据读取也很简单,比如如果我想获取springboot的name数据,那么可以按照以下来读取:

@Value("${springboot.name}")
    private String result;

其他代码与上面一致,这里不再重复给出,得到的结果:

在这里插入图片描述

注意

由于springboot会优先加载系统环境变量,从而如果读取user.name的值就会读到计算机的用户名,因此,应该尽量避免在配置文件中使用这一属性。

读取数组

读取方法:(读取user下的likes中的第二个数据,如果有多层,以此类推)

@Value("${user.likes[1]}")
    private String result;
结果

在这里插入图片描述

2、读取全部数据

这种方法可以将配置文件的全部数据读出来。

 	@Autowired
    private Environment result;			//将数据封装到这一个对象

    @GetMapping
    public String getUserById(){
        System.out.println("读取到的数据为:"+result.getProperty("database.book.name"));		//使用getProperty方法读取,填写的参数与上述方法一致
        return "读取到的数据为:"+result.getProperty("database.book.name");
    }
结果

在这里插入图片描述

3、读取配置文件局部某一部分数据(重要)

​ 先新建一个类,用来作为保存数据的对象:

@Component
@ConfigurationProperties(prefix = "database")		//这里是要获取的局部的属性名,比如,我这里要获取database下的数据
@Data
public class DataSource {
	//这里是配置文件中,database下自己要获取的属性,这个变量名必须和配置文件保持一致
    private String price;
    private String author;
    private String ISBN;
}

获取上面局部全部属性:

@RestController
@RequestMapping("/users")
public class UserController {

    @Autowired
    private DataSource dataSource;

    @GetMapping
    public String getUserById(){
        System.out.println("读取到的数据为:"+dataSource);
        return "读取到的数据为:"+dataSource;
    }
}
结果

在这里插入图片描述

获取某一个值:

 @GetMapping
    public String getUserById(){
        System.out.println("读取到的数据为:"+dataSource.getAuthor());
        return "读取到的数据为:"+dataSource.getAuthor();
    }
结果

在这里插入图片描述

好了,这就是springboot获取配置文件内容的几种方法,欢迎大佬批评指正,也欢迎大家一起来补充!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值