参数验证

注解验证参数的合法性

微笑、不失礼 提交于 2021-02-17 13:40:12
一、定义需要验证的参数类型 package cn.com.songjy.annotation; public enum ValidateType { NotNull,Length,Number } 二、编写注解类 package cn.com.songjy.annotation; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @Retention(RetentionPolicy.RUNTIME) public @interface ValidateAnnotation { public ValidateType type(); public String errorMsg(); public int length() default 0; } 三、验证参数 package cn.com.songjy.annotation; import java.lang.reflect.Field; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; public class ValidateTools { public static

用spring的断言实现对service的参数验证

有些话、适合烂在心里 提交于 2019-12-20 17:03:29
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 通常service每个公开的方法,都要先验证传入的参数是否合法,如果参数的值不合法直接抛异常。举一个简单的例子:有一个根据username获取User的方法 getUser(String username); 为了安全性,这时方法的编写者通常会在方法体的最前面编写一段对入参进行检测的代码,如下所示: Java代码 public User getUser(String username) { if (username == null || username.trim().length() != 0) throw new IllegalArgumentException("username is invalid,invalid username:" + username); //.......省去 } 类似以上检测方法入参的代码是非常常见,但是在每个方法中都使用手工编写检测逻辑的方式并不是一个好主意,代码也不优雅!!!! spring提供了org.springframework.util.Assert通用类。可以满足大部分方法入参检测的要求。这些断言方法在入参不满足要求时就会抛出 IllegalArgumentException 使用 Assert 断言类可以简化方法入参检测的代码,如 getUser(String

淘宝SOA框架dubbo学习(4)--参数验证

安稳与你 提交于 2019-11-30 06:35:10
开始,先说一句,还是用maven的好 1、由于没用maven,和对dubbo不是很了解的原因,这次,总因为jar包不对,而导致:dubbo客户端程序,启动不起来 所以决定:将原来用过的所有jar包全部去,将dubbo-demo-provider-2.5.4-SNAPSHOT/lib下的所有jar包全部导入项目中 一切就OK了 2、服务消费者代码 import java.util.Set; import javax.validation.ConstraintViolation; import javax.validation.ConstraintViolationException; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.alibaba.dubbo.demo.ValidationParameter; import com.alibaba.dubbo.demo.ValidationService; import com.alibaba.dubbo.rpc.RpcException; public class Consumer { /** * @param args * @throws Exception */ public static void