fix(mq-starter): driver autoconfig 加 @AutoConfigureBefore(MqCoreAutoConfiguration)

真实 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) <noreply@anthropic.com>
This commit is contained in:
2026-06-29 12:01:41 +08:00
parent f2ea48dce0
commit 9f6ffad77c
2 changed files with 6 additions and 0 deletions

View File

@@ -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 {

View File

@@ -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 {