This is probably the most easy and straightforward option. In circular dependency, if constructor injection creates a circular reference, you can defer the DI in the setter method. This allows Spring to load a bean context without any issues. The updated code would be as follows:
@Component("employee")public class Employee { private HRService hrService; @Autowired public void setHrService(HRService hrService) { this.hrService = hrService; System.out.println(" HRService dependency is set "); }}@Component("hrService")public class HRService { private CommonUtilService commonUtilService; @Autowired public void setCommonUtilService(CommonUtilService commonUtilService) { this.commonUtilService ...