# BeanVerify **Repository Path**: SmartCloud/BeanVerify ## Basic Information - **Project Name**: BeanVerify - **Description**: 体积非常小的一个基于注解的Bean的验证框架,但它非常灵活,你可以用内置验证方法,也可以自定义验证方式,但是你最好自定义,因为内置验证方法实在不多:)。 - **Primary Language**: Unknown - **License**: BSD-2-Clause - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 7 - **Created**: 2015-07-01 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README - 不知道有没有人看到这个项目,虽然写README很麻烦,但为了让这个项目看起来还是像有那么回事,还是写一个吧-.-! - 刚开始项目中很多地方要使用到Bean的验证,业务逻辑中写验证非常麻烦,因此就自己动手写了个小小的验证框架。结果后来发现了Hibernate Validator,MD,原来早就有这个东西了,很遗憾我又造了个轮子,而且还没人家的好。 - 有点小沮丧,但我还是说服了自己不放弃已写的东西,一是因为顺手了,二是因为要用好HV,我又得把JSR-303学一次,不想学了。第三,这个真的比HV简单。好了,看看下面的实例吧,一个字,很简单! 你可以定义类似这样一个bean:person ``` public class Person { @Null @PersonName(name="GoodName") private String name; @Number(maxSize=1) private String age; @Email private String mailAdress; @Ip(cantNull=false) private String myIp; @Date(cantNull=false,format="yyyyMMddHHmmss") private String today; @Null private Person person; ``` - 可以看到这上面的注解并不符合JSR 303,但没有关系,自己用就好了,自己的就是最好的.其实我本来打算一个验证都不要内置最好,全自定义. - 然后给它填充数据: ``` Person person = new Person(); person.setName("GoodName"); person.setAge("1"); person.setMyIp("127.0.0.1"); person.setMailAdress("34897@qq.com"); //person.setMailAdress(null); //person.setToday("20130506140000"); //person.setToday("kdkfjd"); person.setToday("2013-05-06 14:00:00"); //person.setToday(""); //person.setPerson(person); person.setPerson(null); ``` 开始做验证: ``` //MyBeanChecker.init();//当只使用内置验证类型的时候可以用这个方法进行checker的初始化 MyBeanChecker.addNewVerifyAnno(PersonName.class, VerifyPersonName.class);//当你要添加自定义类型时,直接add就好了,不用再去init一次. Assert.assertTrue(MyBeanChecker.doCheck(person)); ``` 开始测试,debug级别下会得到这样的日志结果: - [38:36,464][com.beanverify.inter.verifier.impl.VerifyNull.doVerify(VerifyNull.java:20)][name]参数不为空--√ - [38:36,464][com.beanverify.test.verifyinterface.impl.VerifyPersonName.doVerify(VerifyPersonName.java:30)][name]名称一致,检查通过--√ - [38:36,480][com.beanverify.inter.verifier.impl.VerifyNumber.doVerify(VerifyNumber.java:30)][age]都是由数字组成,检查通过--√ - [38:36,480][com.beanverify.inter.verifier.impl.VerifyNumber.doVerify(VerifyNumber.java:39)][age]长度在合法范围内,检查通过--√ - [38:36,480][com.beanverify.inter.verifier.impl.VerifyEmail.doVerify(VerifyEmail.java:33)][mailAdress]Email检查通过--√ - [38:36,480][com.beanverify.inter.verifier.impl.VerifyIp.doVerify(VerifyIp.java:35)][myIp]Ip检查通过--√ - [38:36,480][com.beanverify.inter.verifier.impl.VerifyDate.doVerify(VerifyDate.java:33)][today]Date检查失败--× 最后 本人QQ:279315223,感兴趣的朋友请随时加我,提意见,问问题,请我吃饭都可以。