`
kilobug
  • 浏览: 2341 次
  • 性别: Icon_minigender_1
  • 来自: 湛江
文章分类
社区版块
存档分类
最新评论

练手注解和验证器

    博客分类:
  • java
阅读更多

基于spring的validation及hibernate validation

特点:

1、支持spring注入(没找到hibernate validation如何注入)

2、自定义注解验证(虽然hibernate validation也支持)

3、写了一个验证码校验,和验证引用的DIY注解(指向)

 

使用例子:

User entity

 

package org.kilobug.news.entity;

import javax.validation.constraints.Min;

import lombok.Data;

import org.hibernate.validator.constraints.Email;
import org.hibernate.validator.constraints.Length;

@Data
public class User {
	private Long id;
	@Min(0)
	private Long roleId = 0L;
	@Email
	private String email;
	@Min(0)
	private Long mobile = 0L;
	private byte[] password;
	@Length(min=6, max=32)
	private String plainPassword;
	private byte[] salt;
	private String plainSalt;
	private Long creationTime;
	private Long creationIp;
	private Long lastLoginTime = 0L;
	private Long lastLoginIp = 0L;
	private Long statusId = 0L;
}

 

 

UserAdd entity

 

package org.kilobug.news.service.entity;
import lombok.Data;

import org.hibernate.validator.constraints.NotBlank;
import org.kilobug.news.entity.User;
import org.kilobug.validator.constrains.BaseValidate;
import org.kilobug.validator.constrains.Captcha;

public @Data class UserAdd {
	@BaseValidate(value=User.class) // 根据User的email字段的规则验证
	private String email;
	@BaseValidate(value=User.class) // 根据User的plainPassword字段的规则验证
	private String plainPassword;
	@NotBlank @Captcha // 自定义注解验证器,支持注入
	private String captcha;
}

 

 

使用:

 

package org.kilobug.news.validator;

import org.kilobug.news.entity.User;
import org.kilobug.news.service.entity.UserAdd;
import org.kilobug.validator.ValidatorUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.validation.Errors;
import org.springframework.validation.Validator;

@Component
public class UserAddValidator implements Validator {
	@Autowired private ValidatorUtil validator;

	@Override
	public boolean supports(Class<?> clazz) {
		return UserAdd.class.equals(clazz);
	}

	@Override
	public void validate(Object target, Errors errors) {
		if(validator.vaildate(target, errors) == false) return;
		UserAdd entity = (UserAdd) target;
		// :TODO 进一步自定义判断
	}

}

 

 

 

0
0
分享到:
评论

相关推荐

    springMVC练手代码

    这个“springMVC练手代码”压缩包包含的资源可以帮助初学者或开发者深入了解并实践SpringMVC的基本操作和核心概念。 首先,让我们深入理解SpringMVC的关键组成部分: 1. **DispatcherServlet**:它是SpringMVC的...

    Struts2小白练手项目

    这个“Struts2小白练手项目”是专为初学者设计的,旨在帮助他们理解和掌握Struts2的核心概念和实践操作。 在Struts2中,登录和注册是常见的功能模块,它们涉及的主要知识点包括: 1. **Action类**:每个用户请求...

    springboot练手项目.zip

    这个"springboot练手项目.zip"是一个专门为初学者设计的实践项目,旨在帮助他们快速掌握SpringBoot的核心特性和基本用法。该项目包含了实现分页查询、数据修改等常见功能,这些都是Web应用开发中的重要环节。 首先...

    SSM整合的练手小项目

    这个练手小项目是专门为学习和实践这三大框架的整合而设计的。下面将详细阐述SSM整合的核心概念、配置过程以及它们在实际项目中的作用。 1. **Spring框架**:Spring是一个全方位的轻量级应用框架,提供了依赖注入...

    公司小项目,值得新人练手

    在IT行业中,尤其是在Web开发领域,"公司小项目,值得新人练手"这样的标题往往意味着一个适合初学者实践的小型项目,它可以帮助新人快速熟悉实际工作中的开发流程和技术栈。这个项目主要使用了JQuery、Struts2、...

    SSM框架练手项目基于SSM框架的电影购票平台项目源码+数据库,实现购票、选座、支付等功能

    这个练手项目旨在帮助开发者熟悉并掌握SSM框架的实际运用,特别是对于那些想要在实际项目中应用SSM框架的初学者来说,这是一个很好的起点。项目的核心功能包括电影购票、座位选择以及在线支付,涵盖了用户交互、业务...

    ssm入门级项目练手

    教你快速搭建一个简单的ssm小项目,项目里有详细的注解,非常适合刚学写ssm项目的人; 这个项目是一个房屋出租的管理系统,有两个表,分别是管理园表,和...项目里有登录验证,两个表的关联查询,房屋信息的添加和修改

    Java基础_第二阶段-day16每日作业卷答案1

    Java基础学习的第二阶段中,第16天的每日作业主要涉及了两个核心知识点:JUnit测试框架的使用和Java注解的理解与应用。下面将对这两个主题进行详细阐述。 **1. JUnit框架** JUnit是一个流行的Java单元测试框架,它...

    springboot-spring-data-jpa项目练习

    使用`@RestController`注解标识控制器,`@RequestMapping`和`@GetMapping`等注解来处理HTTP请求。 6. **运行与测试**:通过Spring Boot的`main`方法启动应用,内嵌的Tomcat服务器会自动运行。可以使用Postman等工具...

    springMVC的使用

    它是一个模型-视图-控制器(MVC)架构的实现,提供了强大的数据绑定、验证和处理HTTP请求的能力。在这个简单的训练项目中,我们看到了如何利用SpringMVC来实现基础的数据操作,如增、删、改、查,以及用户登录功能。...

    基于SSM的博客后台管理系统

    5. **项目实践**:作为练手项目,这个博客后台管理系统提供了实际动手的机会,让初学者能够将理论知识与实践相结合。通过这个项目,开发者可以学习到如何配置和集成SSM框架,如何设计数据库模型,如何编写控制器、...

    solidworks零件图

    完成三维模型后,SolidWorks能自动生成工程图,包括视图、剖视、尺寸和注解。熟练掌握工程图的生成和编辑技巧,能够确保设计意图清晰地传达给制造团队。 7. **渲染与动画** SolidWorks还提供了高级渲染和动画功能...

    训练struts2+hibernate的项目

    此外,Struts2还支持拦截器(Interceptor),这些拦截器可以在Action执行前后执行自定义操作,例如日志记录、权限验证等,增强了框架的可扩展性。 Hibernate作为ORM框架,允许开发者使用面向对象的方式来操作数据库...

    手势识别大拇指yolo训练集

    在使用这个训练集进行YOLO模型训练时,首先需要预处理数据,如调整图像尺寸以适应模型输入要求,然后根据`train.txt`将图像和其对应的注解加载到数据加载器中。接着,可以利用深度学习框架(如TensorFlow或PyTorch)...

    SpringBoot-Framework:SpringBoot项目测试练手

    5. **无XML配置**:强调代码和注解驱动,减少XML配置。 6. **运行独立**:可以将SpringBoot应用打包成可执行的JAR或WAR文件,包含了所有运行依赖。 **二、SpringBoot的常用模块** 1. **Web模块**:提供Web开发...

    基于fastapi和paddle框架开发的FastAPI包装的手写数字识别模型.zip

    FastAPI以其简洁的代码风格和强大的类型注解功能,使得API的开发和维护变得更加简单。 项目中的核心部分可能是以下几个步骤: 1. 数据预处理:手写数字图像可能需要进行预处理,如归一化、灰度化、裁剪等,以便更...

    MNIST1.rar

    例如,注解可能会解释如何加载数据、如何构建神经网络模型(包括定义层结构、权重初始化、激活函数的选择等)、如何编译模型(损失函数和优化器的选择)、如何划分训练集和验证集、以及如何进行训练和评估。...

    红外数据集包含人车自行车等

    - **数据预处理**:将图像和注解读入,并按照深度学习模型的需求进行格式转换,比如归一化、裁剪或缩放。 - **模型构建**:选择合适的物体检测或识别模型,如YOLO(You Only Look Once)、Faster R-CNN或Mask R-CNN...

    【手写模拟器v1.0】.rar

    例如,学生可以使用它来练习书法,设计师可以进行草图绘制,而商务人士则可以方便地进行签名或注解文档。软件的核心在于其模拟真实手写体验的能力,包括笔尖的移动、笔压的变化以及线条的粗细,这些都可以通过精细的...

    吴恩达机器学习手写笔记

    笔记分为PDF版本和GoodNotes版本,便于不同用户按照个人喜好进行阅读和注解。这两部分笔记都致力于帮助学习者深入理解和掌握机器学习这一关键领域的基础知识和实用技巧。 机器学习是人工智能的一个分支,其目标是让...

Global site tag (gtag.js) - Google Analytics