Вопрос

Недавно я заметил, что Spring может подключить мой ejb за меня, если я аннотирую ejb с помощью @Interceptors(SpringBeanAutowiringInterceptor.class).Я никогда этого не делал, поэтому не знаю подробностей.

Мне было интересно, есть ли способ заставить это работать с другими видами bean-компонентов, например, с аннотированными @WebService.

В настоящий момент в моих классах веб-сервисов (поскольку ими управляет сервер приложений) мне приходится загружать зависимости из BeanFactory, и поэтому я бы предпочел, чтобы они были автоматически подключены.

Я знаю, что мог бы использовать аннотацию @Configurable, но мне не особенно хочется указывать агент на виртуальной машине.

Это возможно?

Это было полезно?

Решение

И снова Spring подумала об этом варианте использования и учла его!

Проблема в том, что @WebService не является весна аннотация, это ДЖАКС-WS аннотация и, следовательно, классы, которые аннотированы с помощью @WebService и должны быть представлены как веб-службы, не управляются Spring, но их жизненный цикл управляется JAX-WS.

Способ обработки этого случая — расширить управляемый компонент JAX-WS org.springframework.web.context.support.SpringBeanAutowiringSupport — это позволит, например, аннотации @Autowire работать в этом компоненте.видеть здесь Чтобы получить больше информации

Другие советы

Да, конечно.В Spring есть @WebService, @Repository, @Controller, @Service, @Endpoint и другие аннотации.Вот пример.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top