Start here. This is the direct spoken answer to practice first.
Overview
A cycle means no bean can be constructed first without an incomplete dependency or delayed reference.
With constructor injection, if bean A requires B and B requires A, neither can be created first, so Spring reports a circular dependency. I first draw the dependency chain from the root failure and look for responsibilities that can be separated. Often both services are coordinating the same workflow, so a third orchestrator, a smaller shared policy, or an event boundary removes the cycle. Switching to field injection only hides the design problem behind partially initialized objects.