spring-boot学习三:运用@configurationProperties与@Validated进行JSR303数据格式校验

Posted haibaowang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring-boot学习三:运用@configurationProperties与@Validated进行JSR303数据格式校验相关的知识,希望对你有一定的参考价值。

在Spring boot中可以通过@configurationProperties与@Validated注解进行数据格式校验;我们通过一个示例进行说明:

  • 我们现在有个类User,里面有两个属性email(邮箱)和password(密码)
package com.hai.bao.springboot02;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * @author :haibao.wang
 * @date :Created in 2019/8/31 17:36
 * @description:JSR303数据校验样例
 * @modified By:
 * @version: $
 */
@Component
@ConfigurationProperties(prefix = "user")
public class User 
    private String email;
    private String password;

    public String getEmail() 
        return email;
    

    public void setEmail(String email) 
        this.email = email;
    

    public String getPassword() 
        return password;
    

    public void setPassword(String password) 
        this.password = password;
    

    @Override
    public String toString() 
        return "User" +
                "email=‘" + email + \\‘ +
                ", password=‘" + password + \\‘ +
                ;
    
  • 我们在applicaton.properties中配置这两个属性;
#配置User类中的相关内容
user.email=1111
user.password=123456
  • 我们在User类中设置读取application.properties文件的注解

技术图片

 

 

 此时我们运行下,发现可以正确读取到email和password的值;

技术图片

 

 

  •  此时我们通过@@Validated注解给User类中的email属性加上校验。校验其必须为邮箱格式,此时我们运行下会报错。报错信息如下:

技术图片

 

 

Caused by: org.springframework.boot.context.properties.bind.validation.BindValidationException: Binding validation errors on user
   - Field error in object user on field email: rejected value [1111]; codes [Email.user.email,Email.email,Email.java.lang.String,Email]; 
arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [user.email,email]; arguments [];
default message [email],[Ljavax.validation.constraints.Pattern$Flag;@7cd1ac19,.*]; default message [不是一个合法的电子邮件地址];
origin class path resource [application.properties]:13:12
  • 我们将email的值调整成一个邮箱格式:

技术图片

 

 我们在运行下此时的程序:

技术图片

 

 

 

 

以上是关于spring-boot学习三:运用@configurationProperties与@Validated进行JSR303数据格式校验的主要内容,如果未能解决你的问题,请参考以下文章

Spring-boot01

SpringBoot中@EnableAutoConfiguration注解用法收集

总结三:webdriver+spring-boot

mybatis框架源码学习

spring-boot结合mybatis-spring的一个例子

spring-boot学习资料