开发过程中有一些常量配置一般会写在application.yml文件中,而Spring Boot读取yml文件的主要方式有以下几种:

一、使用@Value注解

在bean的属性上使用@Value注解,直接读取yml中的值,如:

 

 但这里面写法也有一些情况:其实这种写法对于 String 字符串其实没有什么影响,比如

配置文件 application.yml:

name: xiaobai

类引用处:

public class MyClass {
    @Value("${name}")
    private String name;
} 

这是可以正常显示的,但是如果引用的要是 数组,map 类型的 ,使用@Value 肯定像最开始那要写的是有问题的。其实开始上面正确的数组引用方式为:

如果想要研究的更为详细,可以参考这篇文章:

Spring中利用@Value注解读取yml中的map配置_yml map写法https://blog.csdn.net/weixin_45614626/article/details/116596046

spring @Value注入map、List、Bean、static变量方式及详细使用icon-default.png?t=N4N7https://blog.csdn.net/ZYC88888/article/details/88748516

 

SpringBoot配置文件&YAML配置注入(详解)icon-default.png?t=N4N7https://blog.csdn.net/qq_45173404/article/details/108693030
二、使用@ConfigurationProperties注解

        但如果用上面的方法太复杂了,其实就已经失去了将数据解耦的初衷了(就是为了简化配置),此时不妨换一个思路看看别的方法能不能更简单的实现。使用@ConfigurationProperties注解将yml中的值映射到bean的属性上,如:

 

 

三、使用 @YamlComponent注解

        如果yml文件中用—分隔了多个文档,我们可以使用@YamlComponent注解将每份文档映射到一个bean上(这个用的较少)

 

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐