[Java] Vérification de la corrélation sans créer d'annotation par vous-même avec Bean Validation

Choses à faire

Dans BeanValidation, je vais résumer la méthode de vérification de corrélation dans la plage où vous ne créez pas votre propre annotation (et elle est complétée dans l'objet à valider).

Consultez la documentation officielle pour les détails techniques.

supposition

En règle générale, lorsque vous effectuez un processus tel que "faire correspondre les données transmises par l'avant et les données acquises à partir de la base de données, les valider et les enregistrer dans la base de données si elle est valide", je pense qu'il est préférable de les séparer comme suit. Je vais.

  1. Objets qui agrègent des données et leur processus de génération
  2. Processus de validation utilisant 1 3.1 Processus d'enregistrement des données en utilisant 1

Dans cet article, j'écrirai environ 2 en particulier, mais comme ce processus est étroitement lié à la structure de données du résultat de la validation (en particulier dans BeanValidation, le nom du champ et le nom de la méthode affectent les données renvoyées au premier plan), écrivez-les ensemble. Si cela se produit, les changements en 2 et le front se propageront à 1, et les changements en 1 et 3 se propageront vers l'avant.

Parce que j'ai écrit 1 à 3 ensemble, je me sens très douloureux parce que "je ne peux pas rester ici quand j'essaye de changer ça ...".

manière

Je vais présenter les trois suivants en gros.

--Utilisez ʻAssertTrue ou ʻAssertFalse pour la fonction --Annoter le getter --Application --Préparer un champ pour stocker le résultat du contrôle de corrélation

Utilisez ʻAssertTrue ou ʻAssertFalse dans la fonction

Il s'agit d'une méthode souvent introduite comme contrôle de corrélation. Si le nom de la méthode est ʻisValid, le nom de propriété de l'erreur sera valide`.

@AssertTrue
private boolean isValid() {
  /*Contrôle de corrélation*/
}

Notez que la valeur de retour doit être du type primitif boolean lors de l'exécution d'une vérification de corrélation avec le nom de méthode ʻis ~`. Est requis.

Annoter le getter

Dans BeanValidation, la validation peut être effectuée en annotant un champ, mais la validation peut également être effectuée en annotant une méthode (= getter) nommée get ~. En d'autres termes, vous pouvez vérifier la corrélation même dans le getter.

@AssertTrue
@NotNull
private Boolean getValid() {
  /*Contrôle de corrélation*/
}

application

Lors d'une vérification de corrélation à l'aide d'un getter, la valeur de retour peut être n'importe quoi.

En d'autres termes, vous pouvez dire "Erreur 1 si la valeur de retour est" null ", Erreur 2, si elle est 1 ou plus, ...". Dans l'exemple que j'ai écrit précédemment, la validation se fait comme " NotNull pour null, ʻAssertTrue pour not true`".

Cela permet de séparer les messages d'erreur pour chaque erreur sans modifier les propriétés.

Préparer un champ pour stocker le résultat de la vérification de corrélation

Jusqu'à présent, nous avons introduit le contrôle de corrélation en attribuant une annotation à la fonction, mais si vous stockez la valeur dans le champ au moment de l'initialisation, vous pouvez également vérifier la corrélation en lui attribuant une annotation.

Recommended Posts

[Java] Vérification de la corrélation sans créer d'annotation par vous-même avec Bean Validation
Ajouter une validation de bean avec Micronaut (Java)
Contrôle d'entrée facile avec Bean Validation!
Introduisez Bean Validation 2.0 dans les programmes Java SE