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 来指定。

猜你喜欢

转载自blog.csdn.net/m0_72088858/article/details/126845184