Autowired-Annotationen, die bei DI im Frühjahr verwendet werden, sind einfach zu verwenden und bequem, nicht wahr? Es gibt jedoch mehrere Möglichkeiten, es zu verwenden, und ich weiß nicht, welche ich verwenden soll. Ich benutze es oft in Konstruktoren, aber ich möchte herausfinden, wie das passiert ist.
Grobe Bewertung. Es gibt drei Möglichkeiten, Autowired einzustellen.
Dies ist eine Art Deklarationsmethode, die direkt in das Feld geschrieben wird.
public class A {
@Autowired
private B b;
}
Dies ist die Art der Deklarationsmethode, die in den Konstruktor geschrieben werden soll.
public class A {
private final B b;
@Autowired
public A(B b) {
this.b = b;
}
}
Dies ist eine Art Deklarationsmethode, die in den Setter geschrieben werden soll.
public class A {
private B b;
@Autowired
public void setB(B b) {
this.b = b;
}
}
Sie können final für das Feld verwenden und Unveränderlichkeit garantieren. Der Grund dafür ist großartig. Auf diese Weise ist es sicher, da es während der Verarbeitung nicht neu geschrieben wird. (Auch wenn Sie die Wartung nicht verstehen, wird beim Umschreiben von final ein Kompilierungsfehler angezeigt. Wirklich) Es ist auch toll, dass Sie einen neuen Test machen können. Persönlich bin ich froh, im Test zwischen DI und einfach neu wählen zu können.
Erstens wird es vom Beamten nicht empfohlen. (Sicher) Es hätte keinen Sinn, es zu benutzen.
Ich vertraue nicht darauf, dass die Probenquelle die Feldinjektion verwendet. Ich persönlich finde es nicht gut. (Es ist wirklich einfach)
Lassen Sie uns die Konstruktorinjektion verwenden, ohne die Quelle satt zu haben.