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
Java Spring Bean mit @Lazy-Annotation wird geladen ⇐ Java
-
- Similar Topics
- Replies
- Views
- Last post