Ich verstehe nicht, wie Spring Boots Annotation @Autowired
korrekt funktioniert. Hier ist ein einfaches Beispiel:
-
%Vor% Wenn ich diesen Code ausführe, bekomme ich die Logs init App
und init Starter
, also erstelle diese Objekte. Aber wenn ich die init methode von Starter
in App
anrufe, bekomme ich eine NullPointerException
. Gibt es noch mehr zu tun, dann verwende ich die Annotation @Autowired
, um mein Objekt zu initialisieren?
Wenn Sie die Methode init
aus dem Konstruktor der Klasse App
aufrufen, hat Spring die Abhängigkeiten noch nicht automatisch in das Objekt App
eingefügt. Wenn Sie diese Methode aufrufen möchten, nachdem Spring das Objekt App
erstellt und automatisch gestartet hat, fügen Sie eine Methode mit einer @PostConstruct
Annotation hinzu, zum Beispiel:
Tags und Links java spring spring-boot