diff --git a/daxpay-payment/daxpay-payment-admin/src/main/java/org/dromara/daxpay/payment/admin/controller/demo/consumer/DemoTopicConsumer.java b/daxpay-payment/daxpay-payment-admin/src/main/java/org/dromara/daxpay/payment/admin/controller/demo/consumer/DemoTopicConsumer.java index b929f73da..6cea13a13 100644 --- a/daxpay-payment/daxpay-payment-admin/src/main/java/org/dromara/daxpay/payment/admin/controller/demo/consumer/DemoTopicConsumer.java +++ b/daxpay-payment/daxpay-payment-admin/src/main/java/org/dromara/daxpay/payment/admin/controller/demo/consumer/DemoTopicConsumer.java @@ -6,6 +6,7 @@ import org.dromara.daxpay.payment.admin.controller.demo.constant.DemoArtemisCons import org.dromara.daxpay.payment.admin.controller.demo.message.DemoArtemisMessage; import org.dromara.daxpay.payment.admin.controller.demo.result.DemoMessageResult; import org.dromara.daxpay.payment.admin.controller.demo.store.DemoMessageStore; +import org.dromara.daxpay.platform.common.artemis.ArtemisBeanNames; import org.dromara.daxpay.platform.common.json.util.JacksonUtil; import org.springframework.jms.annotation.JmsListener; import org.springframework.stereotype.Component; @@ -25,13 +26,13 @@ public class DemoTopicConsumer { private final DemoMessageStore store; /// 订阅者 A - @JmsListener(destination = DemoArtemisConstants.TOPIC, containerFactory = "topicListenerFactory") + @JmsListener(destination = DemoArtemisConstants.TOPIC, containerFactory = ArtemisBeanNames.TOPIC_LISTENER_FACTORY) public void onMessageA(String json) { handle(json, "demo-topic-consumer-A"); } /// 订阅者 B(同节点模拟多订阅者) - @JmsListener(destination = DemoArtemisConstants.TOPIC, containerFactory = "topicListenerFactory") + @JmsListener(destination = DemoArtemisConstants.TOPIC, containerFactory = ArtemisBeanNames.TOPIC_LISTENER_FACTORY) public void onMessageB(String json) { handle(json, "demo-topic-consumer-B"); } diff --git a/daxpay-payment/daxpay-payment-common/src/main/resources/template/对账单模板.xlsx b/daxpay-payment/daxpay-payment-common/src/main/resources/template/对账单模板.xlsx deleted file mode 100644 index 1690d0d6c..000000000 Binary files a/daxpay-payment/daxpay-payment-common/src/main/resources/template/对账单模板.xlsx and /dev/null differ diff --git a/daxpay-platform/daxpay-platform-capability/capability-cache/src/main/java/org/dromara/daxpay/platform/capability/cache/notify/consumer/CacheInvalidationConsumer.java b/daxpay-platform/daxpay-platform-capability/capability-cache/src/main/java/org/dromara/daxpay/platform/capability/cache/notify/consumer/CacheInvalidationConsumer.java index 42b3d2c99..769b92830 100644 --- a/daxpay-platform/daxpay-platform-capability/capability-cache/src/main/java/org/dromara/daxpay/platform/capability/cache/notify/consumer/CacheInvalidationConsumer.java +++ b/daxpay-platform/daxpay-platform-capability/capability-cache/src/main/java/org/dromara/daxpay/platform/capability/cache/notify/consumer/CacheInvalidationConsumer.java @@ -4,6 +4,7 @@ import org.dromara.daxpay.platform.capability.cache.core.LocalCacheRegistry; import org.dromara.daxpay.platform.capability.cache.notify.message.CacheInvalidationMessage; import org.dromara.daxpay.platform.capability.cache.notify.message.CacheInvalidationType; import org.dromara.daxpay.platform.capability.cache.notify.support.CacheTopicConstants; +import org.dromara.daxpay.platform.common.artemis.ArtemisBeanNames; import org.dromara.daxpay.platform.common.json.util.JacksonUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -40,7 +41,7 @@ public class CacheInvalidationConsumer { /// 方法签名接收原始 JSON 字符串(统一 Text 传输),手动反序列化为目标类型。 @JmsListener( destination = CacheTopicConstants.TOPIC, - containerFactory = "topicListenerFactory" + containerFactory = ArtemisBeanNames.TOPIC_LISTENER_FACTORY ) public void onMessage(String json) { CacheInvalidationMessage message; diff --git a/daxpay-platform/daxpay-platform-common/common-artemis/src/main/java/org/dromara/daxpay/platform/common/artemis/ArtemisBeanNames.java b/daxpay-platform/daxpay-platform-common/common-artemis/src/main/java/org/dromara/daxpay/platform/common/artemis/ArtemisBeanNames.java new file mode 100644 index 000000000..05d6d7dc0 --- /dev/null +++ b/daxpay-platform/daxpay-platform-common/common-artemis/src/main/java/org/dromara/daxpay/platform/common/artemis/ArtemisBeanNames.java @@ -0,0 +1,21 @@ +package org.dromara.daxpay.platform.common.artemis; + +/// # Artemis Bean 名常量 +/// +/// 集中维护 common-artemis 模块引用到的所有 JMS Bean 名, +/// 供 `@Bean` / `@ConditionalOnMissingBean` / `@Qualifier` / +/// `@JmsListener(containerFactory=...)` 引用,避免散落的字符串字面量。 +public interface ArtemisBeanNames { + + /// Queue 发送模板 Bean 名(pubSubDomain=false) + /// + /// Spring Boot `JmsAutoConfiguration` 默认装配,非本项目自定义 + String QUEUE_JMS_TEMPLATE = "jmsTemplate"; + + /// Topic 发送模板 Bean 名(pubSubDomain=true,本项目自定义) + String TOPIC_JMS_TEMPLATE = "topicJmsTemplate"; + + /// Topic 监听容器工厂 Bean 名(pubSubDomain=true,本项目自定义), + /// 所有订阅 Topic 的 `@JmsListener` 通过 `containerFactory` 引用 + String TOPIC_LISTENER_FACTORY = "topicListenerFactory"; +} diff --git a/daxpay-platform/daxpay-platform-common/common-artemis/src/main/java/org/dromara/daxpay/platform/common/artemis/ArtemisCommonAutoConfiguration.java b/daxpay-platform/daxpay-platform-common/common-artemis/src/main/java/org/dromara/daxpay/platform/common/artemis/ArtemisCommonAutoConfiguration.java index 1399e0456..cf8633616 100644 --- a/daxpay-platform/daxpay-platform-common/common-artemis/src/main/java/org/dromara/daxpay/platform/common/artemis/ArtemisCommonAutoConfiguration.java +++ b/daxpay-platform/daxpay-platform-common/common-artemis/src/main/java/org/dromara/daxpay/platform/common/artemis/ArtemisCommonAutoConfiguration.java @@ -44,20 +44,14 @@ import org.springframework.jms.core.JmsTemplate; @EnableJms public class ArtemisCommonAutoConfiguration { - /// Topic 发送模板的 Bean 名 - public static final String TOPIC_JMS_TEMPLATE = "topicJmsTemplate"; - - /// Topic 监听容器工厂的 Bean 名,供所有 `@JmsListener` 订阅 Topic 时引用 - public static final String TOPIC_LISTENER_FACTORY = "topicListenerFactory"; - /// Topic 发送专用 JmsTemplate(pubSubDomain=true) /// /// 与 Spring Boot 默认的 `jmsTemplate`(Queue 模式)共存, /// 由 `ArtemisTemplateService` 通过 `@Qualifier` 注入。 /// /// 不设置 MessageConverter,回落到 Spring 默认 `SimpleMessageConverter`(String ↔ TextMessage 透传)。 - @Bean(TOPIC_JMS_TEMPLATE) - @ConditionalOnMissingBean(name = TOPIC_JMS_TEMPLATE) + @Bean(ArtemisBeanNames.TOPIC_JMS_TEMPLATE) + @ConditionalOnMissingBean(name = ArtemisBeanNames.TOPIC_JMS_TEMPLATE) public JmsTemplate topicJmsTemplate(ConnectionFactory connectionFactory) { JmsTemplate template = new JmsTemplate(connectionFactory); // 关键:开启 pub-sub 模式,destination 解析为 Topic(multicast) @@ -70,8 +64,8 @@ public class ArtemisCommonAutoConfiguration { /// 所有需要订阅 Topic 的 `@JmsListener` 通过 /// `containerFactory = "topicListenerFactory"` 引用, /// 取代各业务模块自行创建重复的 Topic ListenerFactory。 - @Bean(TOPIC_LISTENER_FACTORY) - @ConditionalOnMissingBean(name = TOPIC_LISTENER_FACTORY) + @Bean(ArtemisBeanNames.TOPIC_LISTENER_FACTORY) + @ConditionalOnMissingBean(name = ArtemisBeanNames.TOPIC_LISTENER_FACTORY) public JmsListenerContainerFactory topicListenerFactory(ConnectionFactory connectionFactory) { DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory(); factory.setConnectionFactory(connectionFactory); diff --git a/daxpay-platform/daxpay-platform-common/common-artemis/src/main/java/org/dromara/daxpay/platform/common/artemis/service/ArtemisTemplateService.java b/daxpay-platform/daxpay-platform-common/common-artemis/src/main/java/org/dromara/daxpay/platform/common/artemis/service/ArtemisTemplateService.java index eb484dc41..98ecfb778 100644 --- a/daxpay-platform/daxpay-platform-common/common-artemis/src/main/java/org/dromara/daxpay/platform/common/artemis/service/ArtemisTemplateService.java +++ b/daxpay-platform/daxpay-platform-common/common-artemis/src/main/java/org/dromara/daxpay/platform/common/artemis/service/ArtemisTemplateService.java @@ -1,5 +1,6 @@ package org.dromara.daxpay.platform.common.artemis.service; +import org.dromara.daxpay.platform.common.artemis.ArtemisBeanNames; import org.dromara.daxpay.platform.common.artemis.ArtemisCommonAutoConfiguration; import org.dromara.daxpay.platform.common.artemis.exception.ArtemisException; import cn.hutool.core.lang.UUID; @@ -52,8 +53,8 @@ public class ArtemisTemplateService { /// Topic 模板(pubSubDomain=true),见 [ArtemisCommonAutoConfiguration#topicJmsTemplate] private final JmsTemplate topicJmsTemplate; - public ArtemisTemplateService(@Qualifier("jmsTemplate") JmsTemplate queueJmsTemplate, - @Qualifier(ArtemisCommonAutoConfiguration.TOPIC_JMS_TEMPLATE) JmsTemplate topicJmsTemplate) { + public ArtemisTemplateService(@Qualifier(ArtemisBeanNames.QUEUE_JMS_TEMPLATE) JmsTemplate queueJmsTemplate, + @Qualifier(ArtemisBeanNames.TOPIC_JMS_TEMPLATE) JmsTemplate topicJmsTemplate) { this.queueJmsTemplate = queueJmsTemplate; this.topicJmsTemplate = topicJmsTemplate; }