Spring component-scan ohne autowiring?
Tut macht es Sinn, Komponenten-scan, OHNE mit autowiring auf den Frühling?
Ich mag die Idee des habens Komponente scan auf einer MVC-Umgebung für die Controller, die Hölle, die ich auch gerne vermeiden, deklarieren Sie alle DAOs, Dienstleistungen ... auf der xml.
Jedoch bin ich kein großer fan von autowiring, so wäre es noch möglich, manuell injizieren Sie die gewünschten Bohnen mit dem xml-config-Datei oder ist es nur ein nicht-Sinn?
UPDATE : Was wäre der Vorteil mit @Autowired statt explizite Deklaration per XML (bitte nicht bieten "weniger xml-Konfiguration" als Vorteil)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde
@Component
um die Implementierung Klassen, so dass eine bean erstellt erhalten für jede von Ihnen@Autowired
/@Resource
mit der Element-Deklarationen entsprechend dieser Implementierungen in anderen Klassen so, dass der Frühling nichtautowire
Sie.<bean>
Knoten und<property>
Elemente zu injizieren Sie über setter oder<constructor-arg>
injizieren Sie durch Konstruktoren.Beispiel:
Schnittstelle:
Implementierung deklariert als Komponente für den Frühling DI-framework zum erstellen einer bean: die
Einen typischen Kunden, die möchten, verwenden Sie die component-based bean, aber injiziert explizit über die Konfiguration-Datei, die durch Konstruktoren.
Anderen typischen Kunden, die möchten, verwenden Sie die component-based bean, aber injiziert explizit über die Konfiguration-Datei mit setter:
Bean-Konfigurationsdatei:
Xml-Deklaration Vorrang vor annotation, so dass Sie nicht verwenden können beide.
Aber warum wollen Sie das erklären der Komponenten über-Anmerkung wenn Sie nicht möchten, verwenden Sie DI? Das macht keinen Sinn.
es ist reparierbar und bis zu, was Sie bevorzugen, zu erklären-Komponenten "Spring-Bean":
component-scan
schreiben Sie in XML mit
außerdem ist es bis zu Ihnen, zu definieren, die Beziehung zwischen den Komponenten:
mit @Autowired
Benutzung oder im xml -
den 2 Aktion sind anders, es ist wie bean initialisieren und die Referenz der Bohne in das Eigentum einer anderen bean, der einzige Punkt, um "component-scan" mit "@Autowired" ist, dass @Autowired verwenden und "component-scan" ist nicht zwingen, die id oder den name der bean erzeugt, so dass es besser ist, beide zusammen aber wenn Sie verwenden möchten, zu Scannen, ohne autowiring muss man aufpassen, nicht über die Verwendung von 2 Komponenten mit gleichen Klassennamen, auch die Betreuung über alle Schreibfehler in dem schreiben der Referenz-Namen.