Spring Annotation @Autowired Inside-Methoden

8

@Autowired kann mit Konstruktoren, Setter und Klassenvariablen verwendet werden.

Wie kann ich die Annotation @Autowired innerhalb einer Methode oder eines anderen Bereichs verwenden? Ich habe Folgendes versucht, aber es erzeugt Kompilierungsfehler. Zum Beispiel

%Vor%

Wenn das unmöglich ist, gibt es einen anderen Weg zu erreichen? (Ich habe Frühling 4 benutzt.)

    
Débora 01.09.2014, 03:17
quelle

2 Antworten

23

Die Annotation @Autowired ist selbst mit

versehen %Vor%

Dies bedeutet, dass es nur verwendet werden kann, um Konstruktoren, Felder, Methoden oder andere Anmerkungstypen zu kommentieren. Es kann nicht für lokale Variablen verwendet werden.

Auch wenn es möglich ist, kann Spring oder eine andere Laufzeitumgebung nichts dagegen tun, da die Reflektion keine Haken in Methodenkörper liefert. Sie könnten zur Laufzeit nicht auf diese lokale Variable zugreifen.

Sie müssen diese lokale Variable in ein Feld verschieben und diese automatisch ansteuern.

    
Sotirios Delimanolis 01.09.2014, 04:50
quelle
1

Wenn Sie nach der IoC-Methode suchen, können Sie dies tun:

Helper2.java class

%Vor%

spring.xml Datei beachten Sie den Benutzer von <context:annotation-config />

%Vor%

Protokollausgabe

%Vor%     
quelle