Проверка подлинности Javax/Hibernate против Asset Springframework
Я хочу понять разницу между библиотекой Assert в Springframework и библиотекой валидаторов Hibernate/Javax. Допустим, у меня есть такой простой контроллер:
@RestController
@RequestMapping("/foo")
public class FooController {
@RequestMapping(value = "/put", method = RequestMethod.PUT)
public ResponseEntity<?> updateFoo(@RequestBody Foo foo) {
//do stuff
}
}
Если я хочу проверить входные данные, у меня есть 3 способа следующим образом.
Hibernate/Javax
@RestController
@RequestMapping("/foo")
public class FooController {
@RequestMapping(value = "/put", method = RequestMethod.PUT)
public ResponseEntity<?> updateFoo(@NotNull(message = "Foo cannot be null") @RequestBody Foo foo) {
//do stuff
}
}
public class Foo {
@NotNull(message = "Id cannot be null")
private Integer id;
@NotEmpty(message = "Must have a non-empty description")
private String description;
@NotEmpty(message = "Must have a non-empty name")
private string name;
//constructors + getters
}
Утверждение Springframe's's Assert
@RestController
@RequestMapping("/foo")
public class FooController {
@RequestMapping(value = "/put", method = RequestMethod.PUT)
public ResponseEntity<?> updateFoo(@NotNull(message = "Foo cannot be null") @RequestBody Foo foo) {
Assert.notNull(foo, "Foo cannot be null!");
Assert.notNull(foo.getId(), "Id cannot be null!");
//do stuff
}
}
Я предпочитаю предпочитать Hibernate/Javax, так как он чувствует себя более интегрированным и требует меньше строк кода в методах контроллера, но есть ли какие-либо недостатки, связанные только с использованием методов проверки Javax/Hibernate?