Wie kann Spring autowiring für eine bestimmte Bean deaktiviert werden?

8

Es gibt eine Klasse in jar (externe Bibliothek), die Spring intern verwendet. So Bibliotheksklasse hat Struktur wie a:

%Vor%

Und Bibliothek bietet API zum Erstellen von Objekten:

%Vor%

In meiner Anwendung habe ich config:

%Vor%

Es ist throw en exception: Field dependency in TestBean required a bean of type TestDependency that could not be found. .

Aber Spring sollte nicht versuchen, etwas zu injizieren, weil Bean bereits konfiguriert ist.

Kann ich Spring autowiring für eine bestimmte Bean deaktivieren?

    
sata 26.01.2017, 18:15
quelle

4 Antworten

3

Basierend auf der Antwort von @ Juan, wurde ein Helfer erstellt, um eine nicht mit dem Autowir zu bearbeitende Bean zu umhüllen:

%Vor%     
Alexey 30.08.2017, 16:22
quelle
3

Das hat für mich funktioniert:

%Vor%     
Juan Bustamante 30.08.2017 14:46
quelle
0

Nicht genau, aber Sie können in Ihrer Autowired-Annotation required = false (@Autoried(require=false)) hinzufügen. Aber Vorsicht, das könnte Ihnen die NullPointer-Ausnahme

bringen     
LowCool 26.01.2017 18:22
quelle
0

Es scheint, dass es unmöglich ist, das Autowiren für eine bestimmte Bean zu deaktivieren.

Es gibt also eine Problemumgehung. Wir können Wrapper für eine Ziel-Bean erstellen und sie anstelle der ursprünglichen Bean verwenden:

%Vor%     
sata 27.01.2017 11:16
quelle

Tags und Links