Git Product home page Git Product logo

spring-bean-validator's Introduction

Spring Bean Validator

A spring bean validation tool with the Spring Expression Language (SpEL), which is a powerful expression language that supports querying and manipulating an object graph at runtime.

It supports validation on various kind of Spring bean properties from String to collection of String and nested property. Multiple rules can be applied on a particular property. Conditional rule is also supported, that means the rules on a particular property will be applied only if the rule of other property is met.

It provides Spring XML configuration to set up the validation rules which make them clear to read and convenient to change with no compilation required.

Getting Started

Three different kind of validators are provided in this library.

Validator Description Support data type Conditional Rules
ValidationCondition Basic validator to apply rule on properties Primitive N
ArrayValidator Apply rules from list of validators on array property Array & List N
MapValidator Apply rules from list of validators on map property Map N
ValidationMatcher Apply rules only if matching property condition is met on properties Primitive Y

Each validation result is stored in ValidationResult as property invalid. If validation is failed, it stores a list of ValidationFailed objects, and they will be aggregated by ValidationResultReducer to return a single ValidationResult.

Configuration

ValidationCondition:

Assign targetProperty to Spring bean property.

Assign validator rules on conditions value, multiple rules can be set with line separator \n.

Example:

<bean id="basicValidator" class="com.horacehylee.validator.validator.ValidationCondition">
    <property name="targetProperty" value="testObject"/>
    <property name="conditions">
        <value>
            <![CDATA[
                id != null
                num > 0
            ]]>
        </value>
    </property>
</bean>

spring-bean-validator's People

Contributors

horacehylee avatar limingho456 avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Forkers

limingho456

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.