SlideShare una empresa de Scribd logo
1 de 15
Descargar para leer sin conexión
Bean	Validation
Diego	Armando	Gómez	
Mosquera
dgomez@vortexbird.com
2017
Que	es	Bean Validation
• Especificación	desarrollador	por	el	Java	
Community Process.
• Su	función	es	validar	Java	Beans se	basa	en	el	
uso	de	anotaciones.
• Bean Validation 1.0	JSR	303	
• Bean Validation 1.1	JSR	349	
• Bean Validation 2.0	JSR	380
Escenario	de	validaciones
Anotaciones
Anotación Ejemplo
@AssertFalse @AssertFalse
boolean isUnsupported;
@AssertTrue @AssertTrue
Boolean isActive;
@DecimalMax @DecimalMax("30.00")
BigDecimalDiscount;
@DecimalMin @DecimalMin("5.00")
BigDecimal discount;
@Digits @Digits(integer=6,	fraction=2)
BigDecimal price;
@FutureDate @FutureDate
eventDate;
@Max @Max(10)
int quantity;
Anotaciones
Anotación Ejemplo
@Min @Min(5)
int quantity;
@NotNull @NotNull
String username;
@Null @Null
String unusedString;
@Past @Past
Date	birthday;
@Pattern @Pattern(regexp="(d{3})d{3}-d{4}")
String phoneNumber;
@Size @Size(min=2,	max=240)
String briefMessage;
Entidad	con	Anotaciones
public class Clientes implements java.io.Serializable {
@NotNull
private long cliId;
@NotNull
private TiposDocumentos tiposDocumentos;
@NotNull
@Size(min = 1, max = 50)
private String cliNombre;
@NotNull
@Size(min = 1, max = 50)
private String cliDireccion;
@NotNull
@Size(min = 1, max = 50)
private String cliTelefono;
@NotNull
@Size(min = 1, max = 50)
private String cliMail;
}
Usando	el	validador
Set<ConstraintViolation<Clientes>> constraintViolations =validator.validate(clientes);
log.info(""+constraintViolations.size());
Spring	y	Bean Validation
• Implementación	de	javax.validation.Validator
• LocalValidatorFactoryBean implementación	
desarrollada	por	el	grupo	de	Spring
• Se	puede	configurar	en	
applicationContext.xml
<bean id="validator"
class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"/>
Taller	implementar	Bean
Validation
• Registrar	anotaciones	en	los	entity
• Configurar	el	LocalValidatorFactoryBean
• Injectar Validator
• Ejecutar	validate
• Revisar	la	lista	de	ConstraintViolation
Hibernate	Validator
<dependency>	
<groupId>org.hibernate</groupId>	
<artifactId>hibernate-validator</artifactId>	
<version>5.4.1.Final</version>	
</dependency>	
<dependency>	
<groupId>org.glassfish</groupId>
<artifactId>javax.el</artifactId>
<version>3.0.1-b08</version>	
</dependency>
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jpa="http://www.springframework.org/schema/data/jpa"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/data/jpa
http://www.springframework.org/schema/data/jpa/spring-jpa-1.8.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">
<bean id="validator"
class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"/>
</beans>
Inyectar	Validator
import javax.validation.ConstraintViolation;
import javax.validation.Validator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Service;
@Service
@Scope("singleton")
public class ClientesLogica implements IClientesLogica{
@Autowired
private Validator validator;
}
Método	para	validar
@Autowired
private Validator validator;
public void validarClientes(Clientes clientes) throws Exception {
try {
Set<ConstraintViolation<Clientes>> constraintViolations = validator.validate(clientes);
if (constraintViolations.size() > 0) {
StringBuilder strMessage = new StringBuilder();
for (ConstraintViolation<Clientes> constraintViolation : constraintViolations) {
strMessage.append(constraintViolation.getPropertyPath().toString());
strMessage.append(" - ");
strMessage.append(constraintViolation.getMessage());
strMessage.append(". n");
}
throw new Exception(strMessage.toString());
}
} catch (Exception e) {
throw e;
}
}
Información	de	contacto
• Sitio	Web:	www.vortexbird.com
• Blog:	http://blog.vortexbird.com
• Contacto	vía	mail:	info@vortexbird.com
• Direccion:	Calle	18	#	118-241	Oficina	21
• Teléfonos:	+57		- (316	482	4629)
Bean validation 2017

Más contenido relacionado

Más de Vortexbird (7)

Facelets
FaceletsFacelets
Facelets
 
Vb.pd.zathuracode.v5.0.1
Vb.pd.zathuracode.v5.0.1Vb.pd.zathuracode.v5.0.1
Vb.pd.zathuracode.v5.0.1
 
Zathuracode Version 5.0.0
Zathuracode Version 5.0.0Zathuracode Version 5.0.0
Zathuracode Version 5.0.0
 
Web services SOAP con JAX-WS
Web services SOAP con JAX-WSWeb services SOAP con JAX-WS
Web services SOAP con JAX-WS
 
Web services restful con JAX-RS
Web services restful con JAX-RSWeb services restful con JAX-RS
Web services restful con JAX-RS
 
Orm hibernate springframework
Orm hibernate springframeworkOrm hibernate springframework
Orm hibernate springframework
 
Introducccion springframework
Introducccion springframeworkIntroducccion springframework
Introducccion springframework
 

Bean validation 2017