2017-01-12 6 views
0

Ich bin neu in Spring und ich möchte mit der Abhängigkeitsinjektion beginnen.Spring Abhängigkeitsinjektion für mehrere Klassen

Ich habe viele Klassen, und sie halten Abhängigkeiten als Schnittstellenreferenzen, die ich mit Objekten bevölke, die ich als Parameter an den Konstruktor sende.

Ich weiß, ich kann jede Klasse separat konfigurieren, um jede Abhängigkeit mit einer bestimmten Implementierung zu injizieren, aber das bedeutet, wenn ich die Implementierung einer bestimmten Abhängigkeit zu allen Klassen ändern möchte, muss ich jede Klasse ändern, die ich sein möchte in der Lage, dies an einem Ort für alle Klassen zu tun.

Was ist der beste Weg, das zu tun?

+1

Ich verstehe nicht ganz, laufen. Normalerweise ändern Sie einfach Ihre Bohne an einem Ort und es wird überall eingespritzt. Warum musst du etwas in Klassen ändern, die deine Bohnen injizieren lassen? Wäre wahrscheinlich gut, wenn Sie etwas Code veröffentlichen, um Ihre Frage zu veranschaulichen. – lexicore

+0

Zum Beispiel, wenn ich eine Schnittstelle für die Benachrichtigung in mehreren Klassen über die Anwendung habe, und ich habe EmailNotification Implementierung, aber jetzt habe ich SMSNotification geschrieben und ich möchte das stattdessen verwenden. –

Antwort

1

In Ihrer Klasse die Schnittstelle injizieren: wird

public class Foo { 

    @Autowried 
    private Boo boo; 
} 

Dann werden Sie steuern, welche die Implantation mit dem Federbehälter gegeben:

@Service 
public class BooImpl implements Boo { 

} 

Alles was Sie jetzt tun müssen, ist die Implementierung ändern .

Wenn möglich, ich Frühlings-Boot verwenden würden, können Sie die Beispiele herunterladen und die sofort https://spring.io/guides/gs/spring-boot/

+0

Kann jemand auch die beans.xml hinzufügen, die ich dafür schreiben muss? –

+0

@GiladBaruchian Ich habe meine Antwort aktualisiert, schau dir die Spring Boot Beispiele an. –

Verwandte Themen