SpringBoot Bug 日志
Spring 循环依赖问题
Bug如下
wxMpConfiguration → subscribeHandler → wxMsgServiceImpl → wxMpConfiguration
解决方案
方案 | 实施方式 | 注意事项 |
---|---|---|
接口抽象 | 定义 WxMpService 接口,通过接口注入 | 最佳设计实践 |
Setter 注入 | 对非必要依赖使用 setter 方法 | 降低耦合度 |
@Lazy 注解 | 在循环点添加延迟加载 | 需测试性能影响 |
配置允许循环 | spring.main.allow-circular-references=true | 临时解决方案 |
tips:该模式常见于三方 SDK 集成场景,建议通过模块化隔离微信相关功能
典型循环依赖模式
配置类 → 处理器 → 服务实现 → 配置类
延迟初始化
# application.properties
spring.main.lazy-initialization=true
允许循环依赖(临时方案)
Properties
# application.properties
spring.main.allow-circular-references=true
解决办法
为了方便 同上(延迟初始化)
使用@lazy注解在WxMpService的自动注入处
@Lazy
@Autowired
private WxMpService wxMpService;