fix(tenant): 按需注册多租户 MQ 配置

将 Redis、RabbitMQ、RocketMQ 的多租户 Bean 拆到独立条件配置,
避免未引入 yudao-spring-boot-starter-mq 的模块启动时因解析
YudaoTenantAutoConfiguration 方法签名触发 NoClassDefFoundError。

Closes https://gitee.com/zhijiantianya/yudao-cloud/issues/IJTOF4
master-jdk17
YunaiV 2026-06-14 00:25:03 +08:00
parent bf35900a25
commit b7fbfc4a19
1 changed files with 25 additions and 9 deletions

View File

@ -156,23 +156,39 @@ public class YudaoTenantAutoConfiguration {
// ========== MQ ========== // ========== MQ ==========
@Configuration(proxyBeanMethods = false)
@ConditionalOnClass(name = "cn.iocoder.yudao.framework.mq.redis.core.interceptor.RedisMessageInterceptor")
public static class TenantRedisMQConfiguration {
@Bean @Bean
public TenantRedisMessageInterceptor tenantRedisMessageInterceptor() { public TenantRedisMessageInterceptor tenantRedisMessageInterceptor() {
return new TenantRedisMessageInterceptor(); return new TenantRedisMessageInterceptor();
} }
@Bean }
@Configuration(proxyBeanMethods = false)
@ConditionalOnClass(name = "org.springframework.amqp.rabbit.core.RabbitTemplate") @ConditionalOnClass(name = "org.springframework.amqp.rabbit.core.RabbitTemplate")
public static class TenantRabbitMQConfiguration {
@Bean
public TenantRabbitMQInitializer tenantRabbitMQInitializer() { public TenantRabbitMQInitializer tenantRabbitMQInitializer() {
return new TenantRabbitMQInitializer(); return new TenantRabbitMQInitializer();
} }
@Bean }
@Configuration(proxyBeanMethods = false)
@ConditionalOnClass(name = "org.apache.rocketmq.spring.core.RocketMQTemplate") @ConditionalOnClass(name = "org.apache.rocketmq.spring.core.RocketMQTemplate")
public static class TenantRocketMQConfiguration {
@Bean
public TenantRocketMQInitializer tenantRocketMQInitializer() { public TenantRocketMQInitializer tenantRocketMQInitializer() {
return new TenantRocketMQInitializer(); return new TenantRocketMQInitializer();
} }
}
// ========== Redis ========== // ========== Redis ==========
@Bean @Bean