当前位置 : 主页 > 编程语言 > java >

通过yaml配置文件来进行全局数据配置和JSR303校验

来源:互联网 收集:自由互联 发布时间:2022-07-04
通过yaml配置文件来进行全局数据配置 1.yaml的基本类型语法 name : 10 # student : age : 3 name 17 student1 : { name : mac , age : 19 } # shuzu : - 01 - 02 - 03 shuzu1 : [ 01 , 02 , 03 ] # dog1 : name : laofei age : 1.5 dog

通过yaml配置文件来进行全局数据配置

1.yaml的基本类型语法

name: 10
#
student:
age: 3
name 17

student1: {name: mac,age: 19}

#
shuzu:
- 01
- 02
- 03

shuzu1: [01,02,03]
#

dog1:
name: laofei
age: 1.5

dog:
name: laofei${random.uuid}
age: ${random.int}

2.两个方法如何绑定到类上

@ConfigurationProperties(prefix = "dog1")

后面加的yaml配置文件里面的数据,不是路劲,这是application.yaml里面的写法,还可以利用占位符来进行操作,支持松散绑定

dog:
name: laofei${random.uuid}
age: ${random.int}

要是自己定义的话:@PropertySource(value = "classpath:mac.properties") 后面填写自己写的路径名:就是文件名字,这个方式不能全局赋值,要通过表达式来给变量赋值

@PropertySource(value = "classpath:mac.properties")
public class Dog {
@Value("${dog.name}")
private String name;
@Value("${dao.age}")
private Integer age;
}

3、JSR303校验,一般作用在pojo上

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
<version>2.7.0</version>
</dependency>

@Null:被注释的元素必须为null @NotNull:被注释的元素必须不为null @AssertTrue:被注释的元素必须为true @AssertFalse:被注释的元素必须为false @Min(value):被注释的元素必须是一个数字,其值必须大于等于指定的最小值 @Max(value):被注释的元素必须是一个数字,其值必须小于等于指定的最大值 @DecimalMin(value):被注释的元素必须是一个数字,其值必须大于等于指定的最小值 @DecimalMax(value):被注释的元素必须是一个数字,其值必须小于等于指定的最大值 @Size(max, min):被注释的元素的大小必须在指定的范围内 @Digits (integer, fraction):被注释的元素必须是一个数字,其值必须在可接受的范围内 @Past:被注释的元素必须是一个过去的日期 @Future:被注释的元素必须是一个将来的日期 @Pattern(value):被注释的元素必须符合指定的正则表达式 Hibernate Validator 附加的注解: @Email:被注释的元素必须是电子邮箱地址 @Length:被注释的字符串的大小必须在指定的范围内 @NotEmpty:被注释的字符串的必须非空 @Range:被注释的元素必须在合适的范围内 @NotBlank:验证字符串非null,且长度必须大于0 @lombok.Data public class RequestVo {

@NotNull(message = "id 不能为空")
private Long id;

@Min(value = 10,message = "年龄必须大于等于10岁")
private Integer age;

@Length(min = 5,max = 20,message = "名字的长度必须在5-10之间")
private String name;

@Email(message = "email format is error")
private String email;

@NotBlank(message = "地址不能为空")
private String address;

@Pattern(regexp = "^[1]([3-9])[0-9]{9}$", message = "请填写正确的手机号")
private String phone;

@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@Past(message = "必须是一个过去的时间")
private Date begin;

@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@Future(message = "必须是一个将来的时间")
private Date end;

核心:@Pattern 可以进行正则表达式的校验

上一篇:Java中的局部变量与全局变量
下一篇:没有了
网友评论