在日常的代码编写过程中,我们会经常遇到各种属性的验证,非空、大于0,equals等等,写的多了开始烦了。。。if(vo.getName != null && vo.getName.equals("hello")),说实话,这样的代码我觉得非常的不优雅,各种的长篇if判断,其实真正想要的,就是那句notNull。那么有没有一种架构思路或者组件,可以让我们省去这恼人的长篇if呢,答案是显而易见的。
JSR303(Validator验证)
JSR303到底是啥,这里就不在赘述,本文这里也不提供魔法传送门。这里要说的是,JSR303是一个标准,说白了,其实就是个接口{皱眉},而目前实现这个接口的,其实是hibernate的hibernate-validator,当然Spring也实现了这个标准,具体的我们另行开篇。下面我们来看下这个东西到底是怎么来用的,先说POM依赖(非maven工程,可在maven仓库下载对应的jar包)
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.0.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
</dependency>
<dependency>
<groupId>javax.el</groupId>
<artifactId>javax.el-api</artifactId>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.el</artifactId>
</dependency>
有人可能会问,引入的这个javax.el的包是什么鬼?这2个包其实是为了解析validation-api包里注解验证不通过之后的错误提示信息,如果不引入这2个包,工程在启动的时候会报错提示。
说一下validation-api包的作用。validation-api其实