DEV Community

Uiratan Cavalcante
Uiratan Cavalcante

Posted on

Validando parâmetros de métodos com a classe Assert do Spring

Você pode usar a classe Assert do Spring (org.springframework.util.Assert) para validar os parâmetros no próprio construtor e evitar que o objeto seja criado com valores inválidos.


🔹 Exemplo com Assert no Construtor

import org.springframework.util.Assert;

import java.time.Instant;

public class Autor {

    private final String nome;
    private final String email;
    private final String descricao;
    private final Instant instanteCriacao;

    public Autor(String nome, String email, String descricao) {
        Assert.hasText(nome, "O nome é obrigatório");
        Assert.hasText(email, "O email é obrigatório");
        Assert.hasText(descricao, "A descrição é obrigatória");
        Assert.isTrue(descricao.length() <= 400, "A descrição não pode passar de 400 caracteres");

        this.nome = nome;
        this.email = email;
        this.descricao = descricao;
        this.instanteCriacao = Instant.now();
    }

    public String getNome() {
        return nome;
    }

    public String getEmail() {
        return email;
    }

    public String getDescricao() {
        return descricao;
    }

    public Instant getInstanteCriacao() {
        return instanteCriacao;
    }
}
Enter fullscreen mode Exit fullscreen mode

📌 Como Funciona?

  • Assert.hasText(nome, "O nome é obrigatório") → Garante que a string não é nula nem vazia.
  • Assert.isTrue(descricao.length() <= 400, "A descrição não pode passar de 400 caracteres") → Valida o tamanho da descrição.

Se qualquer uma dessas condições for violada, uma IllegalArgumentException será lançada imediatamente, impedindo a criação do objeto.


🎯 Vantagens

Validação acontece no momento da criação do objeto, garantindo que ele nunca terá um estado inválido.

Não depende de um framework externo, como o Jakarta Validation (@NotBlank, @Size, etc.).

Leve e direto, pois Assert já vem com o Spring Core.


🚀 Comparação com Jakarta Validation

Método Quando Usar? Como Funciona?
Assert do Spring Se quiser validação imediata e leve Lança IllegalArgumentException no construtor.
Jakarta Validation (@NotBlank) Se quiser integração automática com Spring e @Valid Precisa de um framework de validação e só ocorre quando validado explicitamente.

🔹 Quando Usar Assert no Construtor?

💡 Use Assert quando quiser impedir a criação de objetos inválidos diretamente na classe sem depender de validação externa.

💡 Use Jakarta Validation (@NotBlank, @Valid) quando os dados vêm de requisições HTTP e precisam ser validados antes da conversão para entidade.

Heroku

Build apps, not infrastructure.

Dealing with servers, hardware, and infrastructure can take up your valuable time. Discover the benefits of Heroku, the PaaS of choice for developers since 2007.

Visit Site

Top comments (0)

AWS Security LIVE!

Join us for AWS Security LIVE!

Discover the future of cloud security. Tune in live for trends, tips, and solutions from AWS and AWS Partners.

Learn More

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay