zu verwenden Ich lese das Buch Pro Spring 3. Es hat einen gewissen Absatz, der mich wirklich verwirrt hat. Der Absatz beschäftigt sich mit dem Autofahren im Frühjahr. Hier ein Auszug:Wann Autowiring in Frühling
In den meisten Fällen ist die Antwort auf die Frage, ob Sie autowiring verwenden sollten, ist auf jeden Fall „nein!“ Autowiring Sie Zeit in kleinen Anwendungen speichern kann, aber in vielen Fällen führt zu schlechten Praktiken und ist in großen Anwendungen unflexibel. Die Verwendung von byName scheint wie eine gute Idee, aber es kann dazu führen, dass Sie Ihre Klassen künstliche Eigenschaft Namen geben, so dass Sie die Autowiring-Funktionalität nutzen können. Die ganze Idee hinter Frühling ist, dass Sie Ihre Klassen erstellen können, wie Sie mögen und haben Frühling für Sie arbeiten, nicht umgekehrt ...
... Für jede nicht-triviale Anwendung steuern bei allen autowiring klar Kosten.
Ich habe immer das @ Autowired-Tag in Anwendungen verwendet, die ich erstellt habe. Kann jemand erklären, was damit nicht stimmt und was ich stattdessen verwenden soll?
Ein Mini-Beispiel dafür, wie ich die meisten Dinge jetzt handhaben ist:
@Service("snippetService")
public class SnippetService {
@Autowired
private TestService testService;
public Snippet getSnippet() {
return testService.getSnippet();
}
}
Ist autowiring wie diese „falschen“ mit oder bin ich etwas fehlt?
Ich bin kein Spring-Benutzer, aber ich kenne Guice und CDI. Diese Frameworks machen im Wesentlichen nichts anderes als autowiring; Für jede annotierte Injektionsstelle wird das Framework gehen und etwas finden, das es injizieren kann, basierend auf dem Typ und allen vorhandenen Qualifiern, und dann injizieren. Die Leute haben wirklich ziemlich große Anwendungen mit diesem Ansatz gebaut; Ich arbeite an einem. Ich glaube nicht, dass sie auf die Probleme gestoßen sind, die von den Spring-Autowire-Phobes prophezeit wurden. –
Ein Vorbehalt allerdings: Diese Frameworks führen kein Autowiring im Sinne von 'autowire = 'byType" 'durch. Wenn, wie @mrembisz sagt, der Artikel speziell davor warnt, dann sind die Erfahrungen von Guice und CDI nicht relevant. –