Java Spring Bean mit @Lazy-Annotation wird geladen

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Java Spring Bean mit @Lazy-Annotation wird geladen

by Guest » 20 Dec 2024, 15:42

Ich habe eine Schnittstelle A in einem Jar eines Drittanbieters und habe in meinem Quellcode eine Bean B erstellt, die Schnittstelle A implementiert. Ich habe Bean B mit @Lazy und @Component („ClassB“) annotiert. Jetzt gibt es zwei Prozesse, Prozess 1 und 2, wobei Prozess 1 (verwendet Bean B) ein Drittanbieter-JAR mit Bean A in seinem Klassenpfad hat und Prozess 2 das JAR nicht in seinem Klassenpfad hat. Während Prozess 1 mit Klassenpfad einschließlich A einwandfrei funktioniert, sehe ich, dass Prozess 2 keine Bean erstellen kann, da sich Schnittstelle A nicht im Klassenpfad befindet. Kann jemand sagen, warum Prozess 2 trotz der Annotation mit @Lazy versucht, Bean B zu laden?
Übrigens ist dies kein Spring Boot und nur eine einfache Spring Core-Anwendung
Mein Verständnis ist, dass @Lazy nur geladen wird, wenn darauf verwiesen wird. Hier wird Bean B in Dienst 1 und nicht in 2 referenziert. Warum versucht dann Dienst 2, B zu laden?
Ich habe erwartet, dass beide Dienste ausgeführt werden, da die Bean träge geladen wird

Top