注解@notBlank的工作原理

简介: 注解@notBlank的工作原理

Prerequisite

add the following dependency in pom.xml:

   <dependencies>  
          <dependency>  
               <groupId>junit</groupId>  
               <artifactId>junit</artifactId>  
               <version>4.10</version>  
               <scope>test</scope>  
          </dependency>  
          <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-context</artifactId>
           <version>4.2.6.RELEASE</version>
           </dependency>
           <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>5.2.1.Final</version>
        </dependency>
        <dependency>
   <groupId>javax.el</groupId>
   <artifactId>javax.el-api</artifactId>
   <version>2.2.4</version>
</dependency>
<dependency>

I declare message attribute as NotBlank:


image.png


@NotBlank annotation is a “composite” annotation which is based on @NotNull:


image.png


And use the following code to explicitly trigger a validation:

public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
HelloWorld obj = (HelloWorld) context.getBean("helloWorld");
obj.setMessage(null);
    obj.printMessage();
    // http://stackoverflow.com/questions/24386771/javax-validation-validationexception-hv000183-unable-to-load-javax-el-express
    ValidatorFactory vf = Validation.buildDefaultValidatorFactory();
Validator validator = vf.getValidator();
Set<ConstraintViolation<HelloWorld>> set = validator.validate(obj);
for (ConstraintViolation<HelloWorld> constraintViolation : set) {
System.out.println(constraintViolation.getMessage());
}
}

output:


image.png


A list of all available validator annotation

You can find a list of all available validator and their implementation from this folder:

C:\Users\i042416.m2\repository\org\hibernate\hibernate-validator\5.2.1.Final\hibernate-validator-5.2.1.Final\org\hibernate\validator\internal\constraintvalidators\bv


image.png



Debug - how does it work?


image.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.png


相关文章
|
3天前
AspectJ的工作原理
【5月更文挑战第1天】AspectJ的工作原理
10 3
|
7天前
|
XML Java 数据格式
手写spring第六章-实现应用上下文,完成bean的扩展机制
手写spring第六章-实现应用上下文,完成bean的扩展机制
13 0
|
5月前
|
Java 程序员 编译器
Java注解概述及解析注解
Java注解概述及解析注解
37 1
|
9月前
|
JSON 前端开发 Java
30个类手写Spring核心原理之MVC映射功能(4)
接下来我们来完成MVC模块的功能,应该不需要再做说明。Spring MVC的入口就是从DispatcherServlet开始的,而前面的章节中已完成了web.xml的基础配置。下面就从DispatcherServlet开始添砖加瓦。
31 0
|
12月前
|
Java Spring 容器
【框架源码】Spring源码核心注解@Conditional原理及应用
【框架源码】Spring源码核心注解@Conditional原理及应用
【框架源码】Spring源码核心注解@Conditional原理及应用
|
Java Spring 容器
Spring框架:第六章:注解功能
Spring框架:第六章:注解功能
Spring框架:第六章:注解功能
|
前端开发 Java Spring
Spring MVC框架:第十七章:异常映射
Spring MVC框架:第十七章:异常映射
Spring MVC框架:第十七章:异常映射
|
Java 编译器
注解和反射(一)【注解的基础知识和架构】
注解和反射(一)【注解的基础知识和架构】
99 0
注解和反射(一)【注解的基础知识和架构】
|
Java 索引 Spring
【Spring注解必知必会】深度解析@Component注解实现原理
【Spring注解必知必会】深度解析@Component注解实现原理
225 0
【Spring注解必知必会】深度解析@Component注解实现原理
|
Java 编译器 Spring
Java注解(Annotation)的基本原理以及实现自定义注解
在我们使用springboot的时候我们知道因为注解的存在,使得我们的开发变得格外的方便、快捷。之前的文章Spring常用注解大全,值得你的收藏!!!对于spring中各类注解也进行过介绍。然而注解也并不是因为spring框架的兴起才出现的,而是很早就已经在java中被使用。
954 0
Java注解(Annotation)的基本原理以及实现自定义注解