Table of Contents
1. Introduction to Hibernate Validator
1.1 Background
1.2 Constraints in Bean Validation
1.3 Constraints attached to Hibernate Validator
1.4 Advantages of Hibernate Validator
2. Hibernate Validator practice
2.1 Introducing related jar packages
2.7 Notes
Home Java javaTutorial Hibernate_Validator detailed introduction

Hibernate_Validator detailed introduction

Jun 20, 2017 am 09:54 AM
hibernate validator study

1. Introduction to Hibernate Validator

1.1 Background

At any time, when you want to handle the business logic of an application, data validation is Something you have to consider and face. The application must have some means to ensure that the incoming data is semantically correct. Typically, applications are layered, with different layers being completed by different developers. Many times the same data validation logic will appear in different layers, which will lead to code redundancy and some management issues, such as semantic consistency. In order to avoid such a situation, it is best to bind the validation logic with the corresponding domain model.

Bean Validation defines the corresponding metadata model and API for JavaBean validation. The default metadata is Java Annotations, and the original metadata information can be overwritten and extended by using XML. Bean Validation is a runtime data validation framework, and validation error information will be returned immediately after validation.

Hibernate Validator is the reference implementation of Bean Validation. Hibernate Validator provides implementation of all built-in constraints in the JSR 303 specification, in addition to some additional constraints.

1.2 Constraints in Bean Validation

1.3 Constraints attached to Hibernate Validator

1.4 Advantages of Hibernate Validator

a) The separation of verification logic and business logic reduces program coupling;

b) A unified and standardized verification method eliminates the need for you to write repeated verification code again;

c) You will be more focused on your business and leave all these tedious things aside.

2. Hibernate Validator practice

maven dependency:

< ;dependency>

; org.hibernate

## .Final

2.2 Configuration in SpringMvc

The demo of this article is based on springmvc, which requires Make relevant configurations.

2.3 Add constraint

to JavaBean As shown in the figure, several constraints are added to User: the name is not empty and the length constraint is added; the sex is added with a custom constraint, which will be introduced later; the role constraint is an object embedded constraint. The verification of JSR-303 is based on annotations, and a series of restriction annotations have been defined internally. We only need to mark these annotations on the attributes of the entity class that need to be verified or on their corresponding get methods.

2.4 Custom constraint

As shown in the figure, a ValidSex annotation is defined, and the annotation is marked with the @Constraint annotation , using the @Constraint annotation indicates that we have defined an annotation for restrictions. The validatedBy attribute of the @Constraint annotation is used to specify which ConstraintValidator the current restriction type we define needs to be verified. In the above code, we specified that the validation class of ValidSex restriction type is ValidSexValidator. In addition, it should be noted that there are three attributes that must be defined when we define our own restricted type annotations, such as the message, groups and payload attributes shown in the above code.

2.5 Custom constraint implementation class

As shown in the figure, ConstraintValidator uses generics. It needs to specify a total of two types. The first type is the parameter type of the corresponding initialize method, and the second type is the first parameter type of the corresponding isValid method. From the above two methods, we can see that the initialize method can obtain the attributes of the current restriction type, and the isValid method is used for verification.

2.6 Verify parameters

In the above figure we can see that we have defined a LoginController. The Controller has a processor method validator that handles the validator operation. It needs to receive a User object sent by the client. We are going to use the previous Validator to do this. User object for verification. First we can see that the parameter user received by our validator method is annotated with @Valid. In addition, our processor method must be given a parameter containing Errors, which can be Errors itself, or its subclass BindingResult. Using the Errors parameter tells Spring that errors in form object data verification will be handled by ourselves. Otherwise Spring will throw an exception directly. In this way, when we request the processor method validator, the user object will be verified and the relevant verification information will be stored in the current Errors object. Then we can perform different operations in our processor method depending on whether there is verification exception information. In the above code, we define that we will jump to the login page when there is exception information. In this way, we can display these error messages through the errors tag on the login page.

2.7 Notes

a) If you are verifying an attribute (getter method), you must follow the naming convention of Java Beans (JavaBeans specification);

b) Static Fields and methods cannot be subject to constraint verification;

c) Constraints apply to interfaces and base classes;

d) The target elements defined by constraint annotations can be fields, attributes or types;

e) You can use constraint validation on a class or interface, which will perform state verification on the class or instance that implements the interface;

f) You can use constraint validation on fields and attributes, but you cannot The same constraints are declared repeatedly on fields and related properties (getter methods of fields).

Conclusion: Be kind to everyone around you, because they are the ones who make your life happen.

The above is the detailed content of Hibernate_Validator detailed introduction. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Learn to completely uninstall pip and use Python more efficiently Learn to completely uninstall pip and use Python more efficiently Jan 16, 2024 am 09:01 AM

No more need for pip? Come and learn how to uninstall pip effectively! Introduction: pip is one of Python's package management tools, which can easily install, upgrade and uninstall Python packages. However, sometimes we may need to uninstall pip, perhaps because we wish to use another package management tool, or because we need to completely clear the Python environment. This article will explain how to uninstall pip efficiently and provide specific code examples. 1. How to uninstall pip The following will introduce two common methods of uninstalling pip.

A deep dive into matplotlib's colormap A deep dive into matplotlib's colormap Jan 09, 2024 pm 03:51 PM

To learn more about the matplotlib color table, you need specific code examples 1. Introduction matplotlib is a powerful Python drawing library. It provides a rich set of drawing functions and tools that can be used to create various types of charts. The colormap (colormap) is an important concept in matplotlib, which determines the color scheme of the chart. In-depth study of the matplotlib color table will help us better master the drawing functions of matplotlib and make drawings more convenient.

Revealing the appeal of C language: Uncovering the potential of programmers Revealing the appeal of C language: Uncovering the potential of programmers Feb 24, 2024 pm 11:21 PM

The Charm of Learning C Language: Unlocking the Potential of Programmers With the continuous development of technology, computer programming has become a field that has attracted much attention. Among many programming languages, C language has always been loved by programmers. Its simplicity, efficiency and wide application make learning C language the first step for many people to enter the field of programming. This article will discuss the charm of learning C language and how to unlock the potential of programmers by learning C language. First of all, the charm of learning C language lies in its simplicity. Compared with other programming languages, C language

Getting Started with Pygame: Comprehensive Installation and Configuration Tutorial Getting Started with Pygame: Comprehensive Installation and Configuration Tutorial Feb 19, 2024 pm 10:10 PM

Learn Pygame from scratch: complete installation and configuration tutorial, specific code examples required Introduction: Pygame is an open source game development library developed using the Python programming language. It provides a wealth of functions and tools, allowing developers to easily create a variety of type of game. This article will help you learn Pygame from scratch, and provide a complete installation and configuration tutorial, as well as specific code examples to get you started quickly. Part One: Installing Python and Pygame First, make sure you have

Let's learn how to input the root number in Word together Let's learn how to input the root number in Word together Mar 19, 2024 pm 08:52 PM

When editing text content in Word, you sometimes need to enter formula symbols. Some guys don’t know how to input the root number in Word, so Xiaomian asked me to share with my friends a tutorial on how to input the root number in Word. Hope it helps my friends. First, open the Word software on your computer, then open the file you want to edit, and move the cursor to the location where you need to insert the root sign, refer to the picture example below. 2. Select [Insert], and then select [Formula] in the symbol. As shown in the red circle in the picture below: 3. Then select [Insert New Formula] below. As shown in the red circle in the picture below: 4. Select [Radical Formula], and then select the appropriate root sign. As shown in the red circle in the picture below:

Learn the main function in Go language from scratch Learn the main function in Go language from scratch Mar 27, 2024 pm 05:03 PM

Title: Learn the main function in Go language from scratch. As a simple and efficient programming language, Go language is favored by developers. In the Go language, the main function is an entry function, and every Go program must contain the main function as the entry point of the program. This article will introduce how to learn the main function in Go language from scratch and provide specific code examples. 1. First, we need to install the Go language development environment. You can go to the official website (https://golang.org

Learn the strconv.Atoi function in the Go language documentation to convert strings to integers Learn the strconv.Atoi function in the Go language documentation to convert strings to integers Nov 03, 2023 am 08:55 AM

Learn the strconv.Atoi function in the Go language documentation to convert strings to integers. The Go language is a powerful and flexible programming language. The strconv package in its standard library provides the function of string conversion. In this post, we will learn how to convert string to integer using strconv.Atoi function. First, we need to understand the purpose and declaration of the strconv.Atoi function. The description of the function in the document is as follows: funcAtoi(sstring)(i

Quickly learn pip installation and master the skills from scratch Quickly learn pip installation and master the skills from scratch Jan 16, 2024 am 10:30 AM

Learn pip installation from scratch and quickly master the skills. Specific code examples are required. Overview: pip is a Python package management tool that can easily install, upgrade and manage Python packages. For Python developers, it is very important to master the skills of using pip. This article will introduce the installation method of pip from scratch, and give some practical tips and specific code examples to help readers quickly master the use of pip. 1. Install pip Before using pip, you first need to install pip. pip

See all articles