1.前言
用过SpringMVC的参数校验框架的同学都知道,通过注解的方式,可以优雅的实现Restful接口的参数校验。例如:
@NotBlank(message = "parameter appId required") String appId; |
具体可以参考这篇文章:springmvc的数据校验的实现。
那么基于Dubbo框架的RPC接口是否也能使用类似的方式进行参数校验?下文是一种实现方案,供诸君参考。
2.准备工作
1)引入参数校验框架依赖的包
<!-- 参数校验框架相关 start --> <dependency> <groupId>javax.el</groupId> <artifactId>javax.el-api</artifactId> <version>3.0.0</version> </dependency> <dependency> <groupId>org.glassfish</groupId> <artifactId>javax.el</artifactId> <version>3.0.0</version> </dependency> <dependency> <groupId>org.hibernate.validator</groupId> <artifactId>hibernate-validator</artifactId> <version>6.0.12.Final</version> </dependency> <!-- 参数校验框架相关 end --> |
2)封装几个common类,用于生产者和消费者之间的返回值约定。
2-1)返回值通用类
@Data public class CommonResponse<T> implements Serializable { private T data; private Integer code; private String message; } |
2-2)返回code枚举
public enum ResponseCode { OK(0, "OK"), ... private Integer code; private String message; ResponseCode(Integer code, String message) { this.code = code; this.message = message; } } |