Wstrzykiwanie zależności za pomocą Spring (adnotacje JSR 330) w produkcie WebSphere 7 nie działa

Mam aplikację korporacyjną zbudowaną z Java 6, Spring Framework 3.1.2 i Mule-ESB 3.3.0, wśród innych bibliotek niezwiązanych z tym pytaniem.

Nasze fasole i usługi są deklarowane@Named i@Inject Adnotacje JSR-330, odpowiednio do automatycznego skanowania komponentów i do wstrzykiwania zależności (brak EJB, tylko fasola usługowa). Po wdrożeniu w JBoss 4.2.3 (nasze środowisko testowe) wszystko działa dobrze. Jednak po wdrożeniu w produkcie WebSphere 7 adnotacje JSR-330 wydają się nie działać. Ziarna oznaczone@Named po prostu nie są wykrywane.

Mogę zapewnić, że wszystko jest skonfigurowane poprawnie (ponieważ działa w JBoss). W szczególności<context:component-scan /> zawierabase-package atrybut poprawnie zdefiniowany iscope-resolver atrybut poprawnie skonfigurowany do użyciaJsr330ScopeMetadataResolver (próbowaliśmy też bez niego).

Wiem, że WebSphere 7 (7.0.0.23) może nie obsługiwać tego rodzaju adnotacji. Jeszcze tego nie testuję@Component i@Autowired Odpowiedniki sprężynowe. Niestety bardzo chcielibyśmy używać adnotacji JSR 330, aby nasze klasy nie były bezpośrednio zależne od Springa, mimo że używamy Spring Framework pod maską.

Niemniej jednak, chociaż spędziłem jeden pełny dzień pracy szukając określonego stwierdzenia, że ​​WebSphere 7 nie obsługuje adnotacji JSR 330, nie znalazłem dotąd niczego.

Co więcej, nie rozumiem, dlaczego to nie zadziałałoby, ponieważ zakładam, że Spring Framework wykonuje całą pracę, poprzez<context:component-scan /> dyrektywa wapplication-context.xml plik.

Czy ktoś może wnieść trochę światła do tego problemu?

Czy istnieje sposób aktywacji wstrzykiwania zależności za pomocą adnotacji w produkcie WebSphere 7?

Jeśli wrócę z JSR 330@Named / @Inject adnotacje do własnych wiosennych@Component i@Autowired czy to prawdopodobnie zadziała?

W desperackiej próbie mogę przedłużyć SpringaComponentScanBeanDefinitionParser więc wykryje adnotacje JSR 330 nawet w WebSphere 7?

Jeśli nic nie działa, w końcu powrócę do zwykłej konfiguracji XML. Jest to jednak wysoce niepożądane, ponieważ w XML będą ręcznie konfigurowane setki fasoli.

questionAnswers(3)

yourAnswerToTheQuestion