«Средство проверки гибернации - Справочная реализация JSR 303 - Справочное руководство» говорит о портальности:
Предупреждение
Любая реализация ограничений, основанная на поведении ConstraintValidatorFactory, специфичномк реализации (внедрение зависимостей, отсутствие конструктора без аргументов и т. д.) не считаются переносимыми.
Итак, это плохо?По моему это не так.Конечно, теперь вы подключены к контейнеру DI (Spring) и не можете легко использовать валидаторы (например, если не используете Spring).С другой стороны, с вашими валидаторами, собранными на фабрике Spring, вы можете в полной мере использовать преимущества инфраструктуры и выполнять очень тяжелую работу (читать данные ревизий для сущностей и сравнивать предыдущие состояния, вызывать произвольные сервисы, расширять или локализовать сообщения валидации)..).
Одна вещь, с которой вы должны быть очень осторожны, это то, что семантика валидатора обычно только для чтения и не должна вызывать побочные эффекты при ее вызове.Например, не следует случайно сбрасывать данные в базу данных из-за некоторой автоматической очистки путем вызова (транзакционной) службы или чтения данных внутри вашего валидатора.