Я не могу запустить проверку параметров конструктора, используя только аннотации.
Мой код:
@Data
@Validated
public class TestConstructorLevel
{
private int a;
private int b;
private Integer nullValue;
public TestConstructorLevel( int a, int b, @NotNull Integer nullValue )
{
this.a = a;
this.b = b;
this.nullValue = nullValue;
}
}
Я ожидаю, когда я буду в какой-то службе
new TestConstructorLevel(1, 2, null)
Я получаю ConstraintViolationException из-за @NotNull, но это не работает.
Единственный вариант, который у меня работает, когда я запускаю проверку вручную, как здесь:
validator.forExecutables().validateConstructorParameters(
ReflectionUtils.accessibleConstructor( TestConstructorLevel.class, int.class, int.class, Integer.class ),
new Object[] { 2,1, null } );
но это не подходит.
Я попытался создать класс TestConstructorLevel как компонент Spring, и ничего не изменилось.
Итак, мой вопрос: Какую аннотацию мне нужно использовать для запуска проверки в конструкторе.
PS. Это приложение SpringBoot,