[JAVA] Frühlingsbohne Validaiton ~ Bohne Bari Deshon ~

Bean Validation

Ein Beispiel für die REST-Kommunikation mit Spring Framework wird beschrieben.

Was ist Bianbari?

Überprüfen Sie den Wert von RequestBody, der vom Client gesendet wurde. Es gibt verschiedene Arten von Scheckinhalten.

etc...

Probe vorerst

Ein Beispiel, das nur eine Validierung auf dem Controller durchführt.

SampleContorller.java


@RestController
@RequestMapping("validation")
public class SampleController {

  //Einfach validieren
  @PostMapping
  public SampleResource validation(
        @RequestBody @Validated SampleResource resource) {
    return resource;
  }
}
@Getter
@Setter
public class SampleResource {
  @NotNull
  @Size(min = 5, max = 30)
  @Pattern(regexp = "[a-zA-Z0-9]*")
  private String message;
}
Anmerkung Erläuterung
@NotNull Null verbieten
@Size {min}das ist alles{max}Stelle sicher das
@Pattern Bestätigen Sie, dass es sich um das angegebene Muster handelt

mehr Bean-Validierung

Validierung verschachtelter Klassen

Geben Sie im Feld "@ Valid" an.

SampleContorller.java


Mit Beispielregler oben
@Getter
@Setter
public class SampleResource {
  @Valid
  @NotNull
  private SampleNestResource nestResource;
}

Sie validieren eine verschachtelte Klasse mit @Valid. Wenn "nestResource" nicht gesendet wird, wird Null an das Feld gebunden und die in "SampleNestResource" angegebene Validierung wird nicht ausgeführt, sodass sie von @NotNull benötigt wird.

@Getter
@Setter
public class SampleNestResource {
  @NotNull
  @Size(min = 5, max = 30)
  @Pattern(regexp = "[a-zA-Z0-9]*")
  private String message;
}

In der Sammlung einchecken

Wenn im Feld "Sammlung" wie "Liste" angegeben ist, unterscheiden sich die Validierungsspezifikation der Klasse ohne "Sammlung" und die Validierungsspezifikation für das Feld.

SampleContorller.java


Mit Beispielregler oben
@Getter
@Setter
public class SampleResource {
  
  @Size(min = 2)
  private List<@NotNull String> strList;
}

Überprüfen Sie mit @Size, ob das Listenelement des Felds 2 oder mehr ist Stellen Sie sicher, dass String in List mit @NotNull nicht Null ist

Behandlung von Validierungsfehlern

Wenn keine Behandlung durchgeführt wird, tritt "MethodArgumentNotValidException" auf. In RestController gibt es keinen Fehler in BindingResult, also holen Sie sich den Fehlerinhalt mit Errors.

SampleContorller.java


@RestController
@RequestMapping("validation")
public class SampleController {

  //Einfach validieren
  @PostMapping
  public SampleResource validation(
        @RequestBody @Validated SampleResource resource,
        Errors errors) {
    if (errors.hasErrors()){
      throw new RuntimeException();
    }

    return resource;
  }
}

Recommended Posts

Frühlingsbohne Validaiton ~ Bohne Bari Deshon ~
Lebenszyklus der Frühlingsbohnen
Rufen Sie Spring Management Bean von Pojo