【SpringBoot】04 YAML 应用
2021-01-26 19:13
标签:ring 对象 sso ibm setter document 发行版本 blog 标识符 https://www.cnblogs.com/mindzone/p/12849789.html 一个标配JavaBean 组合的DogBean 我们的YAML文件应该这样编写: 1、打上@ConfigurationProperties注解和前缀属性 2、SpringBoot 配置注解处理器 没有配置? 我们点开【Open Documentation】查看 版本太高都没有文档??? 索性更改文档查看【只要修改发行版本】 https://docs.spring.io/spring-boot/docs/1.5.9.RELEASE/reference/html/configuration-metadata.html#configuration-metadata-annotation-processor 官方告诉我们需要导入这个依赖才能识别我们的yaml文件配置: 【经过测试,并不需要,这个提示警告可以忽视不用管】 3、打上@Componenet注解 【否则初始化异常失败】 4、我们如何证明yaml配置注入到了实例中? 【使用测试类】 运行查看结果 由于狗类没有装配注解,顾打印为null 狗类没有单独的写在yaml文件中,因为是组合在Person中的 我们只需要注册到容器中即可 查看人对象的结果 【警告!在使用properties配置中文字符内容时,请先查看编码类型】 如果是GBK,很用可能在IDEA控制台输出的字符造成乱码问题 建议全部改为UTF-8,并且,勾选自动适应 配置编写: 【注意,这里我并没删除在yml文件中的配置】 打印结果是以properties为准的参数 也就是说SpringBoot优先使用properties的配置注入参数 也可以使用@Value在类中硬编码注入参数 @Value配合SPEL表达式来注入【这是来自Spring的注解】 可以支持的方式【字面量、${} 配置注入,#{}SPEL表达式】 现在我们这样使用 把配置读取的注解注释掉 直接使用@Value来注入 测试 【以下简称 @V & @CP】 - @CP 用于批量注入,支持松散绑定,不支持SPEL,支持JSR303校验,支持复杂类型封装 - @V 用于单个注入,不支持松散绑定,支持SPEL,不支持JSR303校验,不支持复杂类型封装 - properties 不支持SPEL表达式 - yaml 支持SPEL表达式 例如我们的Bean属性标识符是小驼峰: @CP注解在配置文件中去匹配这个标识符的时候 可以匹配这些规则的标识符: - person.lastName - person.last-name - person.last_ame - PERSON_LAST_NAME 详细翻阅的校验注解种类参考: https://www.ibm.com/developerworks/cn/java/j-lo-jsr303/ https://blog.csdn.net/qq_28867949/article/details/78922520 【JSR303 对 @Value注入的校验是无效的,再三提示!!!】 【SpringBoot】04 YAML 应用 标签:ring 对象 sso ibm setter document 发行版本 blog 标识符 原文地址:https://www.cnblogs.com/mindzone/p/12849789.html什么是YAML?
复合结构的语法
public class Person {
private String name;
private Integer age;
private Boolean gender;
private Date birth;
private Map
public class Dog {
private String name;
private Integer age;
// 省略 GETTER & SETTER & ToString
}
person:
name: 杰哥
age: 18
gender: true
birth: 1995/09/05
map:
k1: v1
k2: [1,3,4,7,9]
k3: true
k4: 3.14
language: [C,C++,C#,Java]
puppy:
name: 二哈
age: 3
如何在SpringBoot中绑定JavaBean?
Person{name=‘杰哥‘, age=18, gender=true, birth=Tue Sep 05 00:00:00 CST 1995, map={k1=v1, k2={0=1, 1=3, 2=4, 3=7, 4=9}, k3=true, k4=3.14}, list=[C, C++, C#, Java], puppy=null}
使用SpringBoot的Properties配置来进行编写
person.name = 张三
person.age = 18
person.birth = 1998/09/08
person.gender = false
person.map.k1 = 值1
person.map.k2 = 值2
person.list = Java,C,C++,C#
person.puppy.name = 一条舔狗
person.puppy.age = 1
Person{name=‘张三‘, age=18, gender=false, birth=Tue Sep 08 00:00:00 CST 1998, map={k1=值1, k2=值2, k3=true, k4=3.14}, list=[Java, C, C++, C#], puppy=Dog{name=‘一条舔狗‘, age=1}}
代替@ConfigurationProperties的注入方法
@Value & @ConfigurationProperties的区别?
【Relaxed Binding】什么是松散绑定?
private String lastName;
JSR303注入校验
文章标题:【SpringBoot】04 YAML 应用
文章链接:http://soscw.com/index.php/essay/47401.html