1. 问题所在
springboot3以及上版本引入RocketMQTemplate显示could not be found?
在springboot3时,直接通过依赖来注入RocketMQTemplate会报错,会显示没有这个对象。
这是因为在Springboot3以前的版本,自动装配是通过读取所有jar包下的META-INF/spring.factories文件。(可以去查阅Springboot自动装配原理源码解析)。而spring.factories功能在spring Boot3.0被移除,替换方案为META-INFO/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports。
2. 解决方案
在Resource资源文件夹下建立META-INF文件,然后创建子文件夹spring,创建org.springframework.boot.autoconfigure.AutoConfiguration.imports文件
在文件表明要自动装配的类
org.apache.rocketmq.spring.autoconfigure.RocketMQAutoConfiguration
随后运行项目就可以启动了!