From 9f6ffad77c530f71d06ac1d249dc4ccba4324993 Mon Sep 17 00:00:00 2001 From: hongawen <83944980@qq.com> Date: Mon, 29 Jun 2026 12:01:41 +0800 Subject: [PATCH] =?UTF-8?q?fix(mq-starter):=20driver=20autoconfig=20?= =?UTF-8?q?=E5=8A=A0=20@AutoConfigureBefore(MqCoreAutoConfiguration)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 真实 autoconfig 顺序按类名字母序,com.njcn.mq.autoconfig.MqCoreAutoConfiguration 先于 com.njcn.mq.driver.* 处理,core 的 @ConditionalOnBean(MqDriver) 在 driver bean 注册前求值失败,导致 MqTemplate / MqListenerRegistry 在真实应用中均不装配。 两个 driver autoconfig 各加 @AutoConfigureBefore(MqCoreAutoConfiguration.class), 保证 driver 先于 core 装配。 Co-Authored-By: Claude Opus 4.8 (1M context) --- .../mq/driver/redis/RedisStreamMqDriverAutoConfiguration.java | 3 +++ .../mq/driver/rocketmq/RocketMqDriverAutoConfiguration.java | 3 +++ 2 files changed, 6 insertions(+) diff --git a/mq-starter-redis-stream/src/main/java/com/njcn/mq/driver/redis/RedisStreamMqDriverAutoConfiguration.java b/mq-starter-redis-stream/src/main/java/com/njcn/mq/driver/redis/RedisStreamMqDriverAutoConfiguration.java index 65ea5b5..e9736a5 100644 --- a/mq-starter-redis-stream/src/main/java/com/njcn/mq/driver/redis/RedisStreamMqDriverAutoConfiguration.java +++ b/mq-starter-redis-stream/src/main/java/com/njcn/mq/driver/redis/RedisStreamMqDriverAutoConfiguration.java @@ -1,7 +1,9 @@ package com.njcn.mq.driver.redis; import com.njcn.middle.stream.autoconfig.RedisStreamProperties; import com.njcn.middle.stream.support.StreamKeyBuilder; +import com.njcn.mq.autoconfig.MqCoreAutoConfiguration; import com.njcn.mq.spi.MqDriver; +import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; @@ -10,6 +12,7 @@ import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.core.StringRedisTemplate; @Configuration +@AutoConfigureBefore(MqCoreAutoConfiguration.class) @ConditionalOnClass(StringRedisTemplate.class) @ConditionalOnProperty(name = "mq.type", havingValue = "redis-stream") public class RedisStreamMqDriverAutoConfiguration { diff --git a/mq-starter-rocketmq/src/main/java/com/njcn/mq/driver/rocketmq/RocketMqDriverAutoConfiguration.java b/mq-starter-rocketmq/src/main/java/com/njcn/mq/driver/rocketmq/RocketMqDriverAutoConfiguration.java index b7a9093..0fa4e6d 100644 --- a/mq-starter-rocketmq/src/main/java/com/njcn/mq/driver/rocketmq/RocketMqDriverAutoConfiguration.java +++ b/mq-starter-rocketmq/src/main/java/com/njcn/mq/driver/rocketmq/RocketMqDriverAutoConfiguration.java @@ -1,8 +1,10 @@ package com.njcn.mq.driver.rocketmq; +import com.njcn.mq.autoconfig.MqCoreAutoConfiguration; import com.njcn.mq.spi.MqDriver; import org.apache.rocketmq.spring.autoconfigure.RocketMQProperties; import org.apache.rocketmq.spring.core.RocketMQTemplate; +import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; @@ -10,6 +12,7 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration +@AutoConfigureBefore(MqCoreAutoConfiguration.class) @ConditionalOnClass(RocketMQTemplate.class) @ConditionalOnProperty(name = "mq.type", havingValue = "rocketmq", matchIfMissing = true) public class RocketMqDriverAutoConfiguration {