解决SpringBoot 3 + RocketMQ 配置不生效的问题

今天实现一个业务,需要用到队列进行数据同步,所以加入了MQ。之前一直使用SpringBoot 2.x,今天尝试了一下最新版本,就出现问题了。

Field rocketMQTemplate in tech.kunyuan.api.service.impl.RocketMqProducerServiceImpl required a bean of type 'org.apache.rocketmq.spring.core.RocketMQTemplate' that could not be found.

尝试了很多办法都没有解决,但又不想降低SpringBoot的版本。

最终在github中RocketMQ的官方项目中找到一篇issue解决了这个问题。

https://github.com/apache/rocketmq-spring/pull/541

原因是:

Springboot-3.0已经放弃了spring.plants自动装配,它被/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.import所取代,添加这个文件是为了兼容。

添加META-INF后,写入

org.apache.rocketmq.spring.autoconfigure.RocketMQAutoConfiguration
参考位置
参考内容

成功

测试发送

用RocketMQ的时候,客户端与服务器端一定要使用相同的版本。否则可能会导致重启应用后重复消费的问题。

This entry was posted in 应用. Bookmark the permalink.

发表评论