💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
spring本身使用三级缓存是解决了部分的循环依赖, 其他可以使用 @Lazy 注解、增加中间类的方式去处理 小项目就个别接口有这个, 业务代码主要是在service层, 不想使用中间类, 加lazy注解还是很好解决的 ## 问题说明 医疗项目中遇到了, 药品service调用药品批次库存service, 同时药品批次库存service也调用了药品service, 启动时报错. ### 部分报错信息如下 This means that said other beans do not use the final version of the bean. This is often the result of over-eager type matching - consider using 'getBeanNamesForType' with the 'allowEagerInit' flag turned off, for example. 使用的是 @Autowired 注入 ### 解决方式 加 @Lazy 注解就行了 spring本身使用三级缓存是解决了部分循环依赖的 这次又遇到了 维护旧项目, 要用户注册的时候, 同时提交多个申请单, 去申请不同的东西, 只要有一个申请单通过, 用户就是注册成功了 这样注册时在userService添加完数据调用申请单的service, 而某个申请单审核通过还得修改user表, 导致循环依赖 ``` private ISysUserService sysUserService; @Autowired @Lazy public void setSysUserService(ISysUserService sysUserService) { this.sysUserService = sysUserService; } ```