SpringBoot Bug 日志

Spring 循环依赖问题


Bug如下
SpringBoot Bug 日志_第1张图片
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;

你可能感兴趣的:(JavaEE,spring,boot,bug,java)