栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > Java

springBoot配置文件介绍ymal

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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 map;
    private List 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 getMap() {
        return map;
    }

    public void setMap(Map map) {
        this.map = map;
    }

    public List getLists() {
        return lists;
    }

    public void setLists(List 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 map;
    private List 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}的校验码不合法, 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选择激活的配置文件,一个文件实现多个环境配置。
转载请注明:文章转载自 www.wk8.com.cn
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号