Хей,
Я хочу использовать @Validated(group=Foo.class)
для проверки аргумента перед выполнением метода следующего типа:
public void doFoo(Foo @Validated(groups=Foo.class) foo){}
Когда я помещаю этот метод в контроллер моего приложения Spring, выполняется @Validated
и выдает ошибку, если объект Foo недействителен. Однако, если я поместил одно и то же в методе на уровне службы моего приложения, проверка не выполняется, и метод запускается даже тогда, когда объект Foo недействителен.
Не можете ли вы использовать аннотацию @Validated
на уровне сервиса? Или мне нужно настроить что-то дополнительное, чтобы заставить его работать?
Обновить:
Я добавил следующие два компонента в мой service.xml:
<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"/>
<bean class="org.springframework.validation.beanvalidation.MethodValidationPostProcessor"/>
и заменил @Validate
на @Null
следующим образом:
public void doFoo(Foo @Null(groups=Foo.class) foo){}
Я знаю, что это довольно глупая аннотация, но я хотел бы проверить, что если я сейчас вызову метод и пройдя нуль, это приведет к исключению нарушения, которое оно делает. Итак, почему он выполняет аннотацию @Null
а не аннотацию @Validate
? Я знаю, что один из javax.validation
а другой - с весны, но я не думаю, что это имеет к этому какое-то отношение?