Adnotacje @Valid wewnątrz kodu.

0

Używam sobie tej walidacji i mam jakąś klasę np:

public class User {
    @Id
    private Long id;
    @Size(max = 255)
    @NotNull
    private String name;
    @Size(max = 255)
    @NotNull
    private String surname;
}

I fajnie to np. w controllerze śmiga.

 public User newUser(@RequestBody @Valid User user) {
       jakiś tam kod..
    }

Natomiast zastanawiam się czy da się jakoś tej walidacji użyć gdziekolwiek indziej w kodzie, gdzie tworze obiekt usera. Np.

public User jakasMetodaZwracajacaInnegoUsera() {
  User userNowy = new User(tutaj argumenty które są niezgodne z walidacją)
       return validMetoda(userNowy);
    }

public User validMetoda(@Valid User user){
   return user;
}

Bo w przypadku który podałem wyżej, nie waliduje tylko zwraca obiekt.

0

Adnotacja @Valid to Springowa adnotacja dla kontrolera. Możesz spróbować utworzyć ValidatorFactory, zbudowac validator i przypisać go do Obiektu typu Validator. Metoda Validatora "validate" bedzie Ci zwracać wszystkie błędy walidacji "violations", które zostały utworzone. Jakoś to tam handlowac możesz warunkiem, albo RuntimeException rzucić (ale tutaj nie jestem pewien czy to dobra praktyka.) Na pewno używa się tego do testów integracyjnych walidacji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1