Die Abhängigkeitsinjektion mit Spring (JSR 330-Annotationen) in WebSphere 7 funktioniert nicht
Ich habe eine Unternehmensanwendung, die unter anderem mit Java 6, Spring Framework 3.1.2 und Mule-ESB 3.3.0 erstellt wurde.
Unsere Bohnen und Dienstleistungen sind alle mit deklariert@Named
und@Inject
JSR-330-Annotationen für das automatische Scannen von Komponenten bzw. für das Einfügen von Abhängigkeiten (keine EJBs, nur Service-Beans). Bei der Bereitstellung in JBoss 4.2.3 (unserer Testumgebung) funktioniert alles einwandfrei. Bei der Implementierung in WebSphere 7 scheinen die JSR-330-Anmerkungen jedoch nicht zu funktionieren. Die mit gekennzeichneten Bohnen@Named
werden einfach gar nicht erkannt.
Ich kann versichern, dass alles richtig konfiguriert ist (da es in JBoss funktioniert). Insbesondere die<context:component-scan />
hat diebase-package
Attribut richtig definiert und diescope-resolver
Attribut richtig konfiguriert zu verwendenJsr330ScopeMetadataResolver
(wir haben es auch ohne ausprobiert).
Ich weiß, dass WebSphere 7 (7.0.0.23) solche Anmerkungen möglicherweise nicht unterstützt. Ich muss es noch mit testen@Component
und@Autowired
Federäquivalente. Leider würden wir sehr gerne JSR 330-Annotationen verwenden, damit unsere Klassen nicht direkt von Spring abhängen, obwohl wir Spring Framework unter der Haube verwenden.
Obwohl ich einen ganzen Arbeitstag damit verbracht hatte, nach einer eindeutigen Aussage zu suchen, dass WebSphere 7 JSR 330-Annotationen nicht unterstützt, habe ich bisher nichts gefunden.
Außerdem kann ich nicht verstehen, warum es nicht funktionieren würde, da ich davon ausgehe, dass Spring Framework die gesamte Arbeit über das Internet erledigt<context:component-scan />
Richtlinie in derapplication-context.xml
Datei.
Kann jemand etwas Licht in diese Ausgabe holen?
Gibt es eine Möglichkeit, die Abhängigkeitsinjektion über Anmerkungen in WebSphere 7 zu aktivieren?
Wenn ich vom JSR 330 zurückschalte@Named
/ @Inject
Anmerkungen zu Frühlings eigenen@Component
und@Autowired
wird es wahrscheinlich funktionieren?
In einem verzweifelten Versuch kann ich Spring's verlängernComponentScanBeanDefinitionParser
werden JSR 330-Annotationen auch in WebSphere 7 erkannt?
Wenn nichts funktioniert, werde ich irgendwann auf die reine XML-Konfiguration zurückgreifen. Dies ist jedoch höchst unerwünscht, da im XML Hunderte von Beans manuell konfiguriert werden müssen.