Junior — Middle
What consequences can arise from mutual dependency injection between two beans A and B?
sobes.tech AI
Answer from AI
Mutual dependency injection (circular dependency) between two beans A and B leads to several problems:
- Object creation issues: The IoC container may fail to correctly create the beans, as creating A requires B, and creating B requires A.
- Initialization may loop or cause errors: Depending on the framework, this can lead to a StackOverflowError or a runtime error.
- Maintenance and testing complexity: Such dependencies complicate understanding the architecture and make unit testing more difficult.
To avoid these problems, the following are often used:
- Lazy initialization (e.g.,
@Lazyannotation in Spring). - Introducing a third bean that encapsulates common logic.
- Revising the architecture to eliminate cyclic dependencies.