yaml语法对空格的要求非常严格,对其关系要明确
必须用空格键,不可以用tab键
- 注释用#
- key value 的形式获取值
key:空格value
例:
student:胡歌
对象的形式:
student:
name: 胡歌
age: 33
行内对象的形式:
student:{name: 胡歌,age: 33}
student: 胡歌 #对象 student: name: 胡歌 age: 33 #行内的形式 student: {name: 胡歌,age: 33} #数组 pets: -cat: 猫 -dog: 狗 -fox: 狐狸通过配置文件配置实体类
person: name: 胡歌 age: 33 like: false map: {k1: v1,k2: v2} lists: - ll - wa - lis birth: 2022/09/22 dog: name: 狗子 age: 3
实体类
@Component 组件被管理 @ConfigurationProperties(prefix = "person") 配置 public class Person { private String name; private Integer age; private Map通过properties配置文件map; private List
@Component //@ConfigurationProperties(prefix = "person") //配置文件 @PropertySource("classpath:application.properties") public class Person { //spring的SPEL表达是取出配置文件中的值 @Value("${name}") private String name; private Integer age; private Map通过占位符配置文件 yaml中的松散绑定map; private List lists; private Boolean like; private Dog dog; private Date birth;
在yml文件中,属性名通过“-”连接,同样可以达到赋值的目的,实体类用驼峰命名的方式。
通过注解的方式,对入参数据进行校验,具体使用
import org.springframework.validation.annotation.Validated;//数据校验注解 import javax.validation.constraints.Email;//具体参数校验 @Component @ConfigurationProperties(prefix = "person") //@PropertySource("classpath:application.properties") @Validated //数据校验 public class Person { //spring的SPEL表达是取出配置文件中的值 @Email(message = "名称格式错误")//可以自定义报错信息 private String name; private Integer age;
当入参不满足校验条件时就会报错。
- JSR303注解
-
定义
声明式校验,也称JSR303校验。 JRS303是Java为Bean数据合法性校验提供的标准框架,JSR303通过在Bean属性上标注类似于@NotNull、@NotBlank实现数据合法性校验。
-
相关注解
javax.validation.constraints.AssertFalse.message = 只能为false javax.validation.constraints.AssertTrue.message = 只能为true javax.validation.constraints.DecimalMax.message = 必须小于或等于{value} javax.validation.constraints.DecimalMin.message = 必须大于或等于{value} javax.validation.constraints.Digits.message = 数字的值超出了允许范围(只允许在{integer}位整数和{fraction}位小数范围内) javax.validation.constraints.Email.message = 不是一个合法的电子邮件地址 javax.validation.constraints.Future.message = 需要是一个将来的时间 javax.validation.constraints.FutureOrPresent.message = 需要是一个将来或现在的时间 javax.validation.constraints.Max.message = 最大不能超过{value} javax.validation.constraints.Min.message = 最小不能小于{value} javax.validation.constraints.Negative.message = 必须是负数 javax.validation.constraints.NegativeOrZero.message = 必须是负数或零 javax.validation.constraints.NotBlank.message = 不能为空 javax.validation.constraints.NotEmpty.message = 不能为空 javax.validation.constraints.NotNull.message = 不能为null javax.validation.constraints.Null.message = 必须为null javax.validation.constraints.Past.message = 需要是一个过去的时间 javax.validation.constraints.PastOrPresent.message = 需要是一个过去或现在的时间 javax.validation.constraints.Pattern.message = 需要匹配正则表达式"{regexp}" javax.validation.constraints.Positive.message = 必须是正数 javax.validation.constraints.PositiveOrZero.message = 必须是正数或零 javax.validation.constraints.Size.message = 个数必须在{min}和{max}之间 org.hibernate.validator.constraints.CreditCardNumber.message = 不合法的信用卡号码 org.hibernate.validator.constraints.Currency.message = 不合法的货币 (必须是{value}其中之一) org.hibernate.validator.constraints.EAN.message = 不合法的{type}条形码 org.hibernate.validator.constraints.Email.message = 不是一个合法的电子邮件地址 org.hibernate.validator.constraints.Length.message = 长度需要在{min}和{max}之间 org.hibernate.validator.constraints.CodePointLength.message = 长度需要在{min}和{max}之间 org.hibernate.validator.constraints.LuhnCheck.message = ${validatedValue}的校验码不合法, Luhn模10校验和不匹配 org.hibernate.validator.constraints.Mod10Check.message = ${validatedValue}的校验码不合法, 模10校验和不匹配 org.hibernate.validator.constraints.Mod11Check.message = ${validatedValue}的校验码不合法, 模11校验和不匹配 org.hibernate.validator.constraints.ModCheck.message = ${validatedValue}的校验码不合法, ${modType}校验和不匹配 org.hibernate.validator.constraints.NotBlank.message = 不能为空 org.hibernate.validator.constraints.NotEmpty.message = 不能为空 org.hibernate.validator.constraints.ParametersScriptAssert.message = 执行脚本表达式"{script}"没有返回期望结果 org.hibernate.validator.constraints.Range.message = 需要在{min}和{max}之间 org.hibernate.validator.constraints.SafeHtml.message = 可能有不安全的HTML内容 org.hibernate.validator.constraints.ScriptAssert.message = 执行脚本表达式"{script}"没有返回期望结果 org.hibernate.validator.constraints.URL.message = 需要是一个合法的URL多个配置文件位置及优先级,文件夹不可少,application不可改 多环境配置
- 通过 properties文件来配置环境
- 通过yml文件来配置
在yml文件中配置多个环境的参数,通过active选择激活的配置文件,一个文件实现多个环境配置。