Ich möchte von XML-basierten Frühjahr-Konfiguration in Java-basierte wechseln. Für Konstruktor-Injektion ist es einfach. Beispiel verwende ich:Sping Abhängigkeitsinjektion über Setter-Methode und Konfigurationsklasse
@Configuration
public class BeanConfiguration {
@Bean
public GreetingService greetingService(GreetingDao greetingDao) {
return new GreetingService(greetingDao);
}
@Bean
public GreetingDao greetingDao() {
return new GreetingDao();
}
}
Allerdings, wenn ich durch Setter-Methode injizieren möchte ich so etwas wie dies tue:
@Configuration
public class BeanConfiguration {
@Bean
public MeetingDao meetingDao() {
return new MeetingDao();
}
@Bean
public MeetingService meetingService(MeetingDao meetingDao) {
MeetingService meetingService = new MeetingService();
meetingService.setMeetingDao(meetingDao);
return meetingService;
}
}
Ich bin nicht sicher, ob dies eine mögliche Art und Weise mit Java zu injizieren ist -basierte Konfiguration und Setter-Methode. Leider kann ich kein Beispiel finden (für Konstruktorabhängigkeiten existieren viele Beispiele). Auch bin ich mir bei einer Java-basierten Konfiguration nicht sicher, wann ich Konstruktor und wann Setzer verwenden soll. In Spring-Dokumentation wird beschrieben, dass ich Konstruktor für erforderliche und Setter für optionale Abhängigkeit verwenden sollte. Ich sehe es jedoch als das gleiche Ergebnis für diese Art von Ansatz. Danke für jede Klärung.
Adam
Spring-Team sagt, dass Konstruktor sollte für erforderliche Abhängigkeiten und Setter für optional verwendet werden. Aber um ehrlich zu sein kann ich keinen Unterschied sehen (kann kein richtiges Beispiel finden) – Adam
Ja, das ist richtig. Meine Antwort/Klärung ist irgendwie lang, also habe ich stattdessen meine Antwort bearbeitet. – Pytry