SpringBoot的yml配置文件(三)下

简介: SpringBoot的yml配置文件(三)

四.四.三 测试运行

20210410162833193.png

发现, book 属性也自动填充了,即使 Book 类没有添加 @Component 组件注解。


四.四.四 为 @ConfigurationProperties 添加前缀prefix


SingleInfo 一定提示:


2021041016284454.png


但是我们这个类,前面没有任何前缀啊。 所以用 Book 类进行演示。


四.四.四.一 Book 类添加组件和@ConfigurationProperties 注解


@Component
@ConfigurationProperties(prefix = "book")


20210410162857280.png


四.四.四.二 测试 Book类的自动填充


20210410162906778.png


Book 正常的填充。


四.五 @PropertySource 注解进行封装


@ConfigurationProperties 并没有添加关于属性文件的配置信息,它怎么知道,要读取的是哪一个配置文件呢? 发现,我们将 yaml配置信息放置在了 application.yml(SpringBoot的全局配置文件), 答案就在这儿。


@ConfigurationProperties 会默认从全局配置文件中获取值


在 resoruces 下面,添加 myapplication.yml 配置文件,里面放置 四.一 里面的内容,并且从 application.yml 里面移除四.一里面的内容


20210410162918810.png


四.五.一 测试验证,看是否读取了


Book 取消相应的注解。


SingleInfo 保持不变。


运行没有报错,但没有读取到相应的信息。


20210410162927682.png


四.五.二 通过 @PropertySource 进行指定配置文件


通过 @PropertySource 注解指定文件路径时,就需要 用 @Value 一个个进行绑定属性,否则会无法绑定相应的属性。


20210410162938687.png


运行程序, 发现运行成功了,但是会中文乱码。


20210410162950512.png


@PropertySource 注解,支持添加 encoding 来指定编码。


@PropertySource(value = "classpath:myapplication.yml",encoding = "UTF-8")


添加encoding 属性后,继续运行程序:


20210410163004839.png


乱码问题解决。


老蝴蝶为什么不演示 Book 绑定,或者在 SingleInfo 对象里面绑定 book呢? @Value属性,不支持这么绑定。


四.六 @ConfigurationProperties 与 @Value 注解比较


image.png


如果我们只需要获取到配置文件中某一个值的话,可以使用 @Value


如果需要获取到多个值的话,还与 JavaBean 进行绑定,最好使用 @ConfigurationProperties 。


本章节的代码放置在 github 上:


https://github.com/yuejianli/springboot/tree/develop/Yaml


谢谢您的观看,如果喜欢,请关注我,再次感谢 !!!


相关文章
|
8月前
|
XML JavaScript 前端开发
【Java】Spring Boot中的配置properties 和 yml 的区别
【Java】Spring Boot中的配置properties 和 yml 的区别
|
9月前
|
Java Linux Maven
SpringBoot多环境的yml或properties配置,生产环境和开发环境分离(超详细)
SpringBoot多环境的yml或properties配置,生产环境和开发环境分离(超详细)
160 0
|
1月前
|
Java C++
SpringBoot中的properties,yml,yaml的区别
SpringBoot中的properties,yml,yaml的区别
43 0
|
24天前
|
Java 应用服务中间件 Maven
SpringBoot概述&SpringBoot基础配置&yml的使用&多环境启动
SpringBoot概述&SpringBoot基础配置&yml的使用&多环境启动
34 2
|
7月前
|
Java
springboot(若依)多模块获取yml属性
springboot(若依)多模块获取yml属性
127 0
|
1月前
|
Java Docker 容器
docker部署springboot指定yml文件
docker部署springboot指定yml文件
84 0
QGS
|
1月前
|
JSON Java 关系型数据库
手拉手Springboot获取yml配置文件信息
手拉手Springboot获取yml配置文件信息
QGS
45 1
|
11月前
|
Java
springboot优雅的获取yml配置
springboot优雅的获取yml配置
104 0
|
1月前
|
安全 JavaScript Java
你有没有觉得邮件发送人固定配置在yml文件中是不妥当的呢?SpringBoot 动态设置邮件发送人
你有没有觉得邮件发送人固定配置在yml文件中是不妥当的呢?SpringBoot 动态设置邮件发送人
71 0
|
1月前
|
Java Go 数据库
SpringBoot配置文件(properties & yml)
SpringBoot配置文件(properties & yml)