Spring WS & Validator перехватчик - PullRequest
1 голос
/ 08 марта 2010

У меня есть конечная точка, отображающая веб-сервис, который используется для вставки в базу данных некоторых ключевых слов:

@Transactional(readOnly = false,isolation= Isolation.SERIALIZABLE)
public Source saveKW(...).

На вход подается запрос.

Я хотел бы добавить на метод перехватчик для проверки параметров. этот будет читать некоторые значения из БД.

Мне бы хотелось, чтобы этот перехватчик был встроен в транзакцию, объявленную для конечной точки (или наоборот). Другими словами, я хочу, чтобы они были в одной транзакции.

В идеале я ищу что-то подобное с аннотацией:

@Transactional(readOnly = false,isolation= Isolation.SERIALIZABLE)
@validator("KeyWordValidaor.class")
public Source saveKW(...)

где KeyWordValidaor будет классом, проверяющим параметры.

Есть ли у вас какие-либо идеи или короткие примеры для реализации этого таким или иным образом?

1 Ответ

1 голос
/ 16 мая 2010

Проверка должна быть внутри транзакции, потому что она запрашивает базу данных, например, для проверки ограничений. Я уже нашел свое решение. Я использую Spring AOP и я динамически загружаю соответствующий валидатор из контекста Spring через карту. (очень и неизвестная особенность заранее заданного имени неизвестного бина!). Благодаря атрибуту порядка, он находится внутри транзакции.

...