Внедрение зависимостей с помощью Spring (аннотации JSR 330) в WebSphere 7 не работает
У меня есть корпоративное приложение, построенное на Java 6, Spring Framework 3.1.2 и Mule-ESB 3.3.0, среди других библиотек, не связанных с этим вопросом.
Наши бобы и услуги все заявлены с@Named
а также@Inject
Аннотации JSR-330, соответственно, для автоматического сканирования компонентов и для внедрения зависимостей (без EJB, только служебные бины). При развертывании в JBoss 4.2.3 (наша тестовая среда) все работает отлично. Однако при развертывании в WebSphere 7 аннотации JSR-330, похоже, не работают. Бобы, помеченные@Named
просто не обнаружены вообще.
Я могу заверить, что все настроено правильно (так как он работает в JBoss). В частности,<context:component-scan />
имеетbase-package
атрибут правильно определен иscope-resolver
атрибут правильно настроен для использованияJsr330ScopeMetadataResolver
(мы тоже пытались без него).
Я знаю, что WebSphere 7 (7.0.0.23) может не поддерживать аннотации такого рода. Я еще не испытал это с@Component
а также@Autowired
Весенние эквиваленты. К сожалению, мы бы очень хотели использовать аннотации JSR 330, чтобы наши классы не зависели напрямую от Spring, даже если мы используем Spring Framework под капотом.
Тем не менее, хотя я провел целый рабочий день в поисках определенного утверждения о том, что WebSphere 7 не поддерживает аннотации JSR 330, я пока ничего не нашел.
Кроме того, я не понимаю, почему это не сработает, так как я предполагаю, что именно Spring Framework выполняет всю работу через<context:component-scan />
директива вapplication-context.xml
файл.
Кто-нибудь может пролить свет на этот вопрос?
Есть ли способ активировать внедрение зависимостей через аннотации в WebSphere 7?
Если я переключусь обратно с JSR 330@Named
/ @Inject
аннотации к собственной весны@Component
а также@Autowired
это может сработать?
В отчаянной попытке я могу продлить SpringComponentScanBeanDefinitionParser
так он будет обнаруживать аннотации JSR 330 даже в WebSphere 7?
Если ничего не работает, я в конечном итоге вернусь к простой конфигурации XML. Однако это крайне нежелательно, поскольку в XML будут вручную настроены сотни компонентов.