springBoot配置文件介绍ymal

yaml的基本语法

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<String,Object> map;
    private List<Object> lists;
    private Boolean like;
    private Dog dog;
    private Date birth;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Map<String, Object> getMap() {
        return map;
    }

    public void setMap(Map<String, Object> map) {
        this.map = map;
    }

    public List<Object> getLists() {
        return lists;
    }

    public void setLists(List<Object> lists) {
        this.lists = lists;
    }

    public Boolean getLike() {
        return like;
    }

    public void setLike(Boolean like) {
        this.like = like;
    }

    public Dog getDog() {
        return dog;
    }

    public void setDog(Dog dog) {
        this.dog = dog;
    }

    public Date getBirth() {
        return birth;
    }

    public void setBirth(Date birth) {
        this.birth = birth;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", map=" + map +
                ", lists=" + lists +
                ", like=" + like +
                ", dog=" + dog +
                ", birth=" + birth +
                '}';
    }
}
通过properties配置文件
@Component
//@ConfigurationProperties(prefix = "person")
//配置文件
@PropertySource("classpath:application.properties")
public class Person {
    //spring的SPEL表达是取出配置文件中的值
    @Value("${name}")
    private String name;
    private Integer age;
    private Map<String,Object> map;
    private List<Object> lists;
    private Boolean like;
    private Dog dog;
    private Date birth;
通过占位符配置文件

在这里插入图片描述

yaml中的松散绑定

在yml文件中,属性名通过“-”连接,同样可以达到赋值的目的,实体类用驼峰命名的方式。
在这里插入图片描述

JSR303校验

通过注解的方式,对入参数据进行校验,具体使用

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
  • 定义

      声明式校验,也称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}的校验码不合法, Luhn10校验和不匹配
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选择激活的配置文件,一个文件实现多个环境配置。
    在这里插入图片描述
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值