Frage

Ich habe von mehreren Web-Seiten festgestellt, dass offenbar Frühling 3.0 unterstützt @Inject von JSR-330. Wie wir würden wirklich wie für beiden Web-Anwendungen in unseren Bibliotheken JSR-299-Syntax für Dependency Injection verwenden und Stand-alone-Anwendungen und haben Alternativen zu Weld, wäre es schön, wenn Frühling dies tun könnte.

einen Anfänger bis zum Frühling zu sein, habe ich versucht, die Spring Framework Distribution herunterladen und setzte alle Gläser auf dem Eclipse-Build-Pfad. Kein Inject Anmerkung so mein bestehendes Testprojekt Weld mit nicht kompiliert werden.

Kann dies mit Frühling zu tun? Was brauche ich, um es laufen zu tun bekommen?

(Ich bin mir bewusst, dass Guice dies schließlich unterstützen. Es ist nur in SVN für jetzt, und wenn es eine offizielle Frühlingsmitteilung, die kann, das wäre besser.)


Es kann getan werden. Die JSR-330 jar müssen separat heruntergeladen werden, und cglib die manuell geschrieben @Configuration Klassen zu analysieren, plus ein commons Anmeldung Implementierung.

Der größte Unterschied von Weld zu sein scheint, dass die Verkabelung muss manuell statt auf magische Weise gefunden geschrieben wird (ein bisschen umständlich, kann aber robuste Anwendungen machen), plus die Startzeit ist viel weniger. Ich bin noch neu in Frühling - ist es eine Möglichkeit, @Configuration Klassen autodiscovered hat

War es hilfreich?

Lösung

Von der Frühling 3.0.x Referenzdokumentation :

  

JSR 330 ist @Inject Anmerkung kann anstelle von Spring @Autowired in den folgenden Beispielen verwendet werden. @Inject hat bisher keine erforderliche Eigenschaft im Gegensatz zu Spring @Autowire Anmerkung, die eine gewünschte Eigenschaft hat, um anzuzeigen, wenn der Wert eingespritzt wird, ist optional. Dieses Verhalten wird automatisch aktiviert, wenn Sie die JSR 330 JAR auf dem Classpath haben.

So können Sie Ihren Code Agnostiker des DI Rahmen unter Verwendung @Inject machen können, aber immer noch ein Glas mit den javax.inject Klassen in Ihrem Projekt aufnehmen müssen, weil Frühling sie nicht selbst versenden. Sie können die entsprechende jar im Abschnitt Download finden Sie unter JSR-330 der Google Code-Website .

Andere Tipps

Das javax.inject Paket wird nicht als Teil des Frühlings 3 enthalten, aber es unterstützt es, wenn es vorhanden ist.

Wenn Sie an der Quelle für AutowiredAnnotationBeanPostProcessor schauen, sehen Sie, der Konstruktor verwendet Reflektion javax.inject.Inject zu lokalisieren, und protokolliert eine Meldung, wenn er es findet. Es gibt keine Kompilierung-Abhängigkeit auf sich.

Sie müssen die JSR-330 JAR-Dateien aus einer anderen Quelle finden (zum Beispiel der JavaEE 6 SDK).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top