Circular dependency injection is not required by the CDI standard, unless at least one bean in the cycle has a normal scope. The easiest solution to this is to give A or B a normal scope. If you can't give either a normal scope (from the code mock-up, it looks like they all have the default @Dependent
pseudo-scope), you will have to look for other solutions. Posting a real code sample might let us help you with a particular solution, but here is a start:
- Can A and B be combined into the same class?
- Can a new class, C, be extracted from A and B, so that both A and B
@Inject
C instead of each other?
Here are some SO links with other solutions that you might find helpful:
MVP with CDI; avoiding circular dependency
https://stackoverflow.com/questions/14044538/how-to-avoid-cdi-circular-dependency