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:
@@ -1,7 +1,9 @@
|
|||||||
package com.njcn.mq.driver.redis;
|
package com.njcn.mq.driver.redis;
|
||||||
import com.njcn.middle.stream.autoconfig.RedisStreamProperties;
|
import com.njcn.middle.stream.autoconfig.RedisStreamProperties;
|
||||||
import com.njcn.middle.stream.support.StreamKeyBuilder;
|
import com.njcn.middle.stream.support.StreamKeyBuilder;
|
||||||
|
import com.njcn.mq.autoconfig.MqCoreAutoConfiguration;
|
||||||
import com.njcn.mq.spi.MqDriver;
|
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.ConditionalOnClass;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||||
@@ -10,6 +12,7 @@ import org.springframework.context.annotation.Configuration;
|
|||||||
import org.springframework.data.redis.core.StringRedisTemplate;
|
import org.springframework.data.redis.core.StringRedisTemplate;
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
|
@AutoConfigureBefore(MqCoreAutoConfiguration.class)
|
||||||
@ConditionalOnClass(StringRedisTemplate.class)
|
@ConditionalOnClass(StringRedisTemplate.class)
|
||||||
@ConditionalOnProperty(name = "mq.type", havingValue = "redis-stream")
|
@ConditionalOnProperty(name = "mq.type", havingValue = "redis-stream")
|
||||||
public class RedisStreamMqDriverAutoConfiguration {
|
public class RedisStreamMqDriverAutoConfiguration {
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
package com.njcn.mq.driver.rocketmq;
|
package com.njcn.mq.driver.rocketmq;
|
||||||
|
|
||||||
|
import com.njcn.mq.autoconfig.MqCoreAutoConfiguration;
|
||||||
import com.njcn.mq.spi.MqDriver;
|
import com.njcn.mq.spi.MqDriver;
|
||||||
import org.apache.rocketmq.spring.autoconfigure.RocketMQProperties;
|
import org.apache.rocketmq.spring.autoconfigure.RocketMQProperties;
|
||||||
import org.apache.rocketmq.spring.core.RocketMQTemplate;
|
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.ConditionalOnClass;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||||
@@ -10,6 +12,7 @@ import org.springframework.context.annotation.Bean;
|
|||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
|
@AutoConfigureBefore(MqCoreAutoConfiguration.class)
|
||||||
@ConditionalOnClass(RocketMQTemplate.class)
|
@ConditionalOnClass(RocketMQTemplate.class)
|
||||||
@ConditionalOnProperty(name = "mq.type", havingValue = "rocketmq", matchIfMissing = true)
|
@ConditionalOnProperty(name = "mq.type", havingValue = "rocketmq", matchIfMissing = true)
|
||||||
public class RocketMqDriverAutoConfiguration {
|
public class RocketMqDriverAutoConfiguration {
|
||||||
|
|||||||
Reference in New Issue
Block a user