Was ist der Unterschied zwischen dem einfügen von @Autowired eine variable und eine Methode?
Class A {
private B instanceB;
@Autowired
public setInstanceB(B instanceB) {
this.instanceB = instanceB;
}
}
Oben einen Vergleich dieser.
Class A {
@Autowired
private B instanceB;
public setInstanceB(B instanceB) {
this.instanceB = instanceB;
}
}
Wird das Verhalten unterschiedlich sein, je nach der access-modifier ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der Unterschied ist der setter wird aufgerufen, wenn das ist, wo Sie es speichern, was nützlich ist, wenn es noch andere nützliche Dinge, überprüfung, etc. In der Regel sind Sie zu vergleichen:
vs
(dh es ist keine setter).
Dem ersten vorzuziehen ist in dieser situation nicht, da fehlen ein setter macht mocking/unit-Tests erschwert. Selbst wenn Sie einen setter, aber autowire die Daten-member, die Sie erstellen können ein problem sein, wenn der setter macht etwas anderes. Dies würde zum erlöschen Ihrer unit-Tests.