首页 >> 科技 >>列表

validation-api在服务层的使用(原创)

网络整理 2020-01-14 16:36:53 作者:零落浮华

在写服务层代码时,需要对入参进行校验,现在的做法如下:

代码冗余,且不够友好

解决思路

在Spring MVC层,Spring利用javax-validation及@Valid等注解,很好的解决了参数校验问题,编码友好,且提示信息友好。

javax-validation是一项标准及技术,使用范围不仅限于MVC。故在任何类及方法层都可以使用。以下详细说明。

基础依赖

spring-boot

javax-validation (这是标准接口)

hibernate-validator(这是实现)

<dependency>

    <groupId>javax.validation</groupId>

    <artifactId>validation-api</artifactId>

    <version>2.0.1.Final</version>

</dependency>

<dependency>

    <groupId>org.hibernate.validator</groupId>

    <artifactId>hibernate-validator</artifactId>

    <version>6.0.12.Final</version>

</dependency>

***warning***以上示例均为最新版本。具体使用版本以当前功能为主,请勿随意升级现有工程版本

实现原理

参阅 

org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration

重点类是

MethodValidationPostProcessor 的定义

使用方式

参数类定义,私有变量加校验注解。此类为普通JavaBean


服务类定义

在类级别,加注解@Validated

在方法级别,若为DTO对象,加注解@Valid。若为普通参数,加普通校验注解,如@NotNull,@Length等


实际效果


相关文章

上海联通信息港 - 为网友提供互联网每日热点内容
上海联通信息港是一个自媒体内容聚合分享平台,为网友提供互联网每日新闻和热点内容分享,今日看点新闻头条增长知识!