Java – Spring Boot – Bean Validation

Bean Validation

Neste artigo, vamos inspecionar o suporte à validação do Spring bean . Spring fornece um suporte de primeira classe para API de validação de bean e está bem integrado no framework Spring.

A validação do bean JSR-303 se tornou o padrão de validação no mundo Java. A API de validação de feijão fornece uma declaração de restrição de nível de objeto e recurso de validação para o desenvolvedor de aplicativos Java e um repositório de metadados de restrição e API de consulta. Validação de bean Spring nos permite usar estes b ean validação restrição diretamente sobre o feijão de Java. Existem vários benefícios desta abordagem

  1. Não há necessidade de configurações de validação separadas.
  2. As restrições são diretas nos modelos de domínio.

Neste artigo, veremos como usar o suporte à  validação de bean em seu aplicativo Spring MVC . Podemos usar o suporte à validação de bean em qualquer nível dentro do sistema Spring para validar dados (mesmo na camada DAO).

 

Para usar a validação do Spring bean em nosso projeto, precisamos adicionar a implementação de validação-api e JSR-303 em nosso arquivo pom.xml (por exemplo, Hibernate Validator ). Para este artigo, estamos usando Spring Boot, que pode extrair essas dependências automaticamente.

Código da dependência para ser inserida no pom.xml:

<!-- apenas necessário a partir do spring 2.3 -->
<dependency>
      <groupId>org.springframework.boot</groupId>
    
  <artifactId>spring-boot-starter-validation</artifactId>
</dependency>

Classe RequisicaoNovoPedido servirá para implementação das anotações que fazem interação com o fomuláario Spring para a validação na ocasião estamos utilizando a anotação @NotBlank

package br.com.mudi.dto;

import javax.validation.constraints.NotBlank;

import br.com.mudi.model.Pedido;

public class c {
@NotBlank
private String nomeProduto;
@NotBlank
private String urlProduto;
@NotBlank
private String urlImagem;
private String descricaoProduto;
public String getNomeProduto() {
return nomeProduto;
}
public void setNomeProduto(String nomeProduto) {
this.nomeProduto = nomeProduto;
}
public String getUrlProduto() {
return urlProduto;
}
public void setUrlProduto(String urlProduto) {
this.urlProduto = urlProduto;
}
public String getUrlImagem() {
return urlImagem;
}
public void setUrlImagem(String urlImagem) {
this.urlImagem = urlImagem;
}
public String getDescricoProduto() {
return descricaoProduto;
}
public void setDescricoProduto(String descricoProduto) {
this.descricaoProduto = descricoProduto;
}
public Pedido toPedido() {
Pedido pedido = new Pedido();
pedido.setDescricaoPedido(descricaoProduto);
pedido.setNomeProduto(nomeProduto);
pedido.setUrlImagem(urlImagem);
pedido.setUrlDoproduto(urlProduto);

return pedido;
}

}

O código para nosso formulário será o seguinte, nele utilizaremos thymeleaf que é um ferramenta de interação com o controller implementado pelo Spring  :

 

<blockquote><code></code>

<!–
<div class=”container”>
<div class=”jumbotron mb-0″>
<h1 class=”display-4″>Novo Pedido</h1>
</div>
<div class=”card mt-3″>
<div class=”card-body”>
<form class=”form-horizontal” action=”/pedido/salvar” method=”post”>
<div class=”form-group”><label>Produto</label> <input class=”form-control” name=”nomeProduto” type=”text” placeholder=”Nome do Produto” /> <small>Informe
qual o nome do produto.</small></div>
<div class=”form-group”><label>UrlImagem</label> <input class=”form-control” name=”urlImagem” type=”text” placeholder=”Url da imagem” /> <small>Informe
qual o nome do url da imagem do produto.</small></div>
<div class=”form-group”><label>UrlProduto</label> <input class=”form-control” name=”urlProduto” type=”text” placeholder=”Url do produto” /> <small>Informe
qual o nome do url.</small></div>
<div class=”form-group”><label>Descrição</label>
<textarea class=”form-control” name=”descricoProduto”> </textarea>
<small>Informe qual o nome do url.</small></div>
<input class=”btn btn-primary” type=”submit” value=”Cadastrar” />

</form></div>
</div>
</div>
–></blockquote>

No método do pedido controle iremos colocar a anotação @Valid para interação da validação com Spring e a class BindingResult

@PostMapping("salvar")
public String salvar(@Valid RequisicaoNvoPedido requisicao, BindingResult result)
{
if (result.hasErrors()) {
return "pedido/formulario";
}
Pedido pedido = requisicao.toPedido();
pedidorepository.save(pedido);
return "pedido/formulario";
}

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *