JSR-303数据校验
JSR-303数据校验
- 1、JSR-303数据校验简介
- 2、常用校验注解
- 3、使用
- 3.1 导入依赖
- 3.2 添加注解
- 3.3 测试
- 4、实战项目中用到实例
1、JSR-303数据校验简介
JSR是Java Specification Requests的缩写,意思是Java 规范提案
JSR-303 是JAVA EE 6 中的一项子规范,叫做Bean Validation
即,JSR 303,Bean Validation规范 ,为Bean验证定义了元数据模型和API.。默认的元数据模型是通过Annotations来描述的,但是也可以使用XML来重载或者扩展。
2、常用校验注解
3、使用
3.1 导入依赖
在pom.xml
配置文件当中导入依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId></dependency>
3.2 添加注解
在实体类中使用JSR-303数据校验注解
@Validated //数据校验
实体类Person
中添加注解@Validated
package com.kuang.pojo;import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
import org.springframework.validation.annotation.Validated;import javax.validation.constraints.Email;import java.util.Date;
import java.util.List;
import java.util.Map;@Component
@ConfigurationProperties(prefix = "person")@Validated //数据校验//javaConfig 绑定配置文件的值 可以采取下面这种方式
//加载指定的配置文件
//@PropertySource(value = "classpath:application.properties")
public class Person {// //SP EL表达式取出配置文件的值
// @Value("${name}")@Email(message = "邮箱格式错误")private String name;private Integer age;private Dog dog;private Boolean happy;private Date birth;private List<Object> lists;private Map<String,Object> maps;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 Dog getDog() {return dog;}public void setDog(Dog dog) {this.dog = dog;}public Boolean getHappy() {return happy;}public void setHappy(Boolean happy) {this.happy = happy;}public Date getBirth() {return birth;}public void setBirth(Date birth) {this.birth = birth;}public List<Object> getLists() {return lists;}public void setLists(List<Object> lists) {this.lists = lists;}public Map<String, Object> getMaps() {return maps;}public void setMaps(Map<String, Object> maps) {this.maps = maps;}public Person(String name, Integer age, Dog dog, Boolean happy, Date birth, List<Object> lists, Map<String, Object> maps) {this.name = name;this.age = age;this.dog = dog;this.happy = happy;this.birth = birth;this.lists = lists;this.maps = maps;}public Person() {}@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", age=" + age +", dog=" + dog +", happy=" + happy +", birth=" + birth +", lists=" + lists +", maps=" + maps +'}';}
}
l配置文件application.yaml
。上面数据校验 规定的是将实体类中的name属性规定为Email
形式,但是我这里故意将属性name的值不写成Email的形式,为了查看最后的错误提示
person:name: li #我这里故意写错 到后面查看错误的提示age: ${random.int}happy: falsebirth: 2019/11/02maps: {k1: v1,k2: v2}hello: happylists:-code-music-grildog:name: 旺财age: 3
3.3 测试
测试类 Springboot01HelloWordApplicationTests
package com.kuang;import com.kuang.pojo.Dog;
import com.kuang.pojo.Person;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;@SpringBootTest
class Springboot01HelloWordApplicationTests {//只要前面写了组件@Component,这里就可以实现自动注入了@Autowired
// private Dog dog;private Person person;@Testvoid contextLoads() {System.out.println(person);}}
测试结果
看到错误的提示,是属性name
的格式不是Email
,所以说明使用KSR-303数据校验成功!
4、实战项目中用到实例
JSR-303数据校验相关推荐
- SpringMVC 数据的格式化、JSR 303数据校验和国际化
SpringMVC 数据的格式化.JSR 303数据校验和国际化 转载于:https://www.cnblogs.com/lusufei/p/7400963.html
- 如何使用JSR 303 进行后台数据校验?
文章目录 一.JSR 303 1.什么是 JSR 303? 2.为什么使用 JSR 303? 3.JSR 303 常见操作? 二.使用 JSR 303 相关注解处理逻辑 1.JSR 303 注解处理逻 ...
- java学习笔记——springmvc 之 数据自定义转换器 数据格式化 JSR303数据校验返回与接收JSON(@RequestBody 和 @ResponseBody)
九.数据绑定流程分析 1.提出问题 日期字符串格式的表单参数,提交后转换为Date类型 <!-- 解决问题: 1.数据类型转换 2.数据格式 3.数据校验 --> BirthDay ...
- jsr 正则验证_JSR-303 数据校验学习
一.JSR-303简介 JSR-303 是 JAVA EE 6 中的一项子规范,叫做 Bean Validation,官方参考实现是Hibernate Validator. 此实现与 Hibernat ...
- Spring boot的Bean使用JSR 303校验
@Validated 验证注解 添加在验证的Bean上 @Validated public class Person { 就可以直接在属性上 使用JSR 303提供的,默认约束规则 //lastNam ...
- 让Spring 3中jsp的数据对象使用懒加载(FetchType.LAZY)与Controller的JSR 303并存
本文出处:http://blog.csdn.net/chaijunkun/article/details/9083171,转载请注明.由于本人不定期会整理相关博文,会对相应内容作出完善.因此强烈建议在 ...
- JSR 303 – Bean Validation 介绍及最佳实践
关于 Bean Validation 在任何时候,当你要处理一个应用程序的业务逻辑,数据校验是你必须要考虑和面对的事情.应用程序必须通过某种手段来确保输入进来的数据从语义上来讲是正确的.在通常的情况下 ...
- JSR 303 - Bean Validation 介绍及最佳实践
关于 Bean Validation 在任何时候,当你要处理一个应用程序的业务逻辑,数据校验是你必须要考虑和面对的事情.应用程序必须通过某种手段来确保输入进来的数据从语义上来讲是正确的.在通常的情况下 ...
- SpringMVC的数据转换、格式化和数据校验
目录 一.数据转换 1.ConversionService 2.自定义类型转换器 (1)案例一 (2)案例二 二.处理静态资源 三.关于 mvc:annotation-driven 四.@InitBi ...
- JSR 303 - Bean Validation 简介及使用方法
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 一.JSR-303简介 JSR-303 是 JAVA EE 6 中的一项子规范,叫做 Bean Va ...
最新文章
- eclipse中显示jquery或extjs自动提示
- association in CDS view is converted to LEFT OUTER MANY TO ONE JOIN in the runtime
- ConvertFrom-String 命令研究
- 手工编程是指利用计算机完成,西安交通大学17年3月课程考试《CAD CAM》作业考核试题...
- tensorflow一个很好的博客
- 从零开始学前端:链接跳转 --- 今天你学习了吗?(CSS:Day03)
- 为什么发音要浊化(sp、st、sk)
- 假币问题 (n枚硬币+未知轻重+DFS)
- 简单大学生静态HTML网页作品 HTML5+CSS大作业——圣诞节节日(7页) 带轮播特效
- kd树 python实现_Python - KDTree 实现
- [译]百里挑一:21个优质Swift开源App
- 两台电脑通过trunk口互通,修改trunk 接口pvid后不通了 <1>
- python歌词图表分析_用终端显示歌词的方法来实战学习python的基础知识
- Layui坑之module目录引入dropdown.js或其他自定义js文件启动项目不能找到引入文件的解决方案.
- VSS(Visual SourceSafe)使用入门
- JS遍历数组的几种方法
- Mac 自动化自动操作工作流程(Workflow)完成日常软件文件网页一键打开
- 学习笔记:获取字符串中数字的两种方法
- LCP 22.黑白方格画
- 计算机网络论文2020年8000字,2020年计算机网络技术论文范文.docx