SpringBoot 有几种读取配置文件的方法?

Spring Boot 中读取配置文件有以下 5 种方法:

使用 @Value 读取配置文件。
使用 @ConfigurationProperties 读取配置文件。
使用 Environment 读取配置文件。
使用 @PropertySource 读取配置文件。
使用原生方式读取配置文件。
它们的具体使用方法如下,为了方便测试,我们在 Spring Boot 配置文件 application.properties 添加以下内容:

84b5ec0da15b4c5597ff7f983651cbfa.png 

1.使用 @Value 读取配置文件

使用 @Value 可以读取单个配置项,如下代码所示:

631dd2d2b35845248c1961fb2c8b8a99.png
以上程序的执行结果如下图所示: 

b758ea404cdc4be8b825950858d8a6a7.png 

2.使用 @ConfigurationProperties 读取配置文件

@ConfigurationProperties 和 @Value 的使用略微不同,@Value 是读取单个配置项的,而 @ConfigurationProperties 是读取一组配置项的,我们可以使用 @ConfigurationProperties 加实体类读取一组配置项,如下代码所示:

bf80d81468524aa0ad0f4a2bfdac7528.png
其中 prefix 表示读取一组配置项的根 name,相当于 Java 中的类名,最后再把此配置类,注入到某一个类中就可以使用了,如下代码所示: 

e462398125984610bd6d0922c0e5efbc.png
以上程序的执行结果如下图所示: 

69595957bf1e4d91b5e423f09806d9c6.png 

3.使用 Environment 读取配置文件

Environment 是 Spring Core 中的一个用于读取配置文件的类,将此类使用 @Autowired 注入到类中就可以使用它的 getProperty 方法来获取某个配置项的值了,如下代码所示:

abf85cf0d6104b9caa41539e78fff035.png
以上程序的执行结果如下图所示: 

beeaac558ccc42008a8cdb277e2ce5d9.png 

4.使用 @PropertySource 读取配置文件

使用 @PropertySource 注解可以用来指定读取某个配置文件,比如指定读取 application.properties 配置文件的配置内容,具体实现代码如下:

935b80b99b3a41baa67161f280d1758a.png
以上程序的执行结果如下图所示: 

6961b3b22d1444d0af0d2700995ed7a6.png 

中文乱码

如果配置文件中出现中文乱码的情况,可通过指定编码格式的方式来解决中文乱码的问题,具体实现如下:

9f58d3198eab4b95b20dda3e544b0035.png 

注意事项

@PropertySource 注解默认是只支持 properties 格式配置文件的读取的。

5.使用原生方式读取配置文件

我们还可以使用最原始的方式 Properties 对象来读取配置文件,如下代码所示:

e9bd50c8ee94443d80d72768c0d8a508.png
以上程序的执行结果如下图所示: 

088d441a119947528867ab9cae22040a.png 

总结

在 Spring Boot 中读取配置文件有以下 5 种方法:

使用 @Value 读取配置文件。
使用 @ConfigurationProperties 读取配置文件。
使用 @PropertySource 读取配置文件。
使用 Environment 读取配置文件。
使用原生方式读取配置文件。
其中最常用的是前 3 种,如果读取某一个配置项可使用 @Value,如果读取一组配置项可使用 @ConfigurationProperties,如果要指定读取某一个具体的配置文件可使用 @PropertySource 来指定。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蜀州凯哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值