专栏首页Jerry的SAP技术分享注解@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:

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

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:

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

Debug - how does it work?

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Netweaver和CloudFoundry的log设置

    pom.xml里定义cf-logging, log4j2和slf4j这三个组件的版本号:

    Jerry Wang
  • MongoDB最简单的入门教程之四:使用Spring Boot操作MongoDB

    版权声明:本文为博主汪子熙原创文章,未经博主允许不得转载。 https://jerry.bl...

    Jerry Wang
  • MongoDB最简单的入门教程之四:使用Spring Boot操作MongoDB

    Spring Boot 是一个轻量级框架,可以完成基于 Spring 的应用程序的大部分配置工作。Spring Boot的目的是提供一组工具,以便快速构建容易配...

    Jerry Wang
  • Maven的加强

    只添加了一个struts2-core依赖,发现项目中出现了很多jar, 这种情况 叫 依赖传递

    用户5927264
  • 实战spring自定义属性(schema):快速体验

    在开发dubbo服务的时候,我们会在xml中做以下类似的配置: <dubbo:application name="dubbo_service_provider"...

    程序员欣宸
  • Maven构建的Spring项目需要哪些依赖?

    用户2409797
  • ssm整合的pom.xml依赖

    用户2409797
  • 实战spring自定义属性(schema)

    spring启动后,dubbo的本地运行时环境就会获取到这些信息,根据这些信息完成注册服务,今天我们实战的内容就是开发一个类似的自定义属性,然后在spring项...

    程序员欣宸
  • 学习sharding-jdbc 分库分表扩展框架

    https://gitee.com/a247292980/sharding-jdbc

    ydymz
  • Java——Spring整合Mybatis(IDEA版)

    该文主要教大家如何整合spring和mybatis,整合完成效果,可以从数据库中查询出学生信息:

    说故事的五公子

扫码关注云+社区

领取腾讯云代金券