diff --git a/daxpay-demo/pom.xml b/daxpay-demo/pom.xml
new file mode 100644
index 000000000..ff41399bd
--- /dev/null
+++ b/daxpay-demo/pom.xml
@@ -0,0 +1,70 @@
+
+
+ 4.0.0
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 4.0.6
+
+
+
+ org.dromara.daxpay
+ daxpay-demo
+ 4.0.0-SNAPSHOT
+ jar
+ 功能演示模块(可独立装配;默认随 daxpay-start 打包,需隔离时移除 start 中对应依赖即可)
+
+
+ 25
+ 25
+ 25
+ UTF-8
+
+
+
+
+
+ org.projectlombok
+ lombok
+ provided
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+
+
+ org.dromara.daxpay
+ common-artemis
+ ${project.version}
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ ${java.version}
+ ${java.version}
+
+
+
+ org.projectlombok
+ lombok
+ ${lombok.version}
+
+
+
+
+
+
+
+
diff --git a/daxpay-payment/daxpay-payment-admin/src/main/java/org/dromara/daxpay/payment/admin/controller/demo/ArtemisDemoController.java b/daxpay-demo/src/main/java/org/dromara/daxpay/demo/artemis/ArtemisDemoController.java
similarity index 89%
rename from daxpay-payment/daxpay-payment-admin/src/main/java/org/dromara/daxpay/payment/admin/controller/demo/ArtemisDemoController.java
rename to daxpay-demo/src/main/java/org/dromara/daxpay/demo/artemis/ArtemisDemoController.java
index c81d63d6b..de70de881 100644
--- a/daxpay-payment/daxpay-payment-admin/src/main/java/org/dromara/daxpay/payment/admin/controller/demo/ArtemisDemoController.java
+++ b/daxpay-demo/src/main/java/org/dromara/daxpay/demo/artemis/ArtemisDemoController.java
@@ -1,14 +1,9 @@
-package org.dromara.daxpay.payment.admin.controller.demo;
+package org.dromara.daxpay.demo.artemis;
import cn.hutool.core.lang.UUID;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
-import org.dromara.daxpay.payment.admin.controller.demo.constant.DemoArtemisConstants;
-import org.dromara.daxpay.payment.admin.controller.demo.message.DemoArtemisMessage;
-import org.dromara.daxpay.payment.admin.controller.demo.param.SendDemoMessageParam;
-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.service.ArtemisTemplateService;
import org.dromara.daxpay.platform.common.json.util.JacksonUtil;
import org.dromara.daxpay.platform.core.annotation.IgnoreAuth;
diff --git a/daxpay-payment/daxpay-payment-admin/src/main/java/org/dromara/daxpay/payment/admin/controller/demo/constant/DemoArtemisConstants.java b/daxpay-demo/src/main/java/org/dromara/daxpay/demo/artemis/DemoArtemisConstants.java
similarity index 89%
rename from daxpay-payment/daxpay-payment-admin/src/main/java/org/dromara/daxpay/payment/admin/controller/demo/constant/DemoArtemisConstants.java
rename to daxpay-demo/src/main/java/org/dromara/daxpay/demo/artemis/DemoArtemisConstants.java
index 1c50f4c3a..ffca7e5a5 100644
--- a/daxpay-payment/daxpay-payment-admin/src/main/java/org/dromara/daxpay/payment/admin/controller/demo/constant/DemoArtemisConstants.java
+++ b/daxpay-demo/src/main/java/org/dromara/daxpay/demo/artemis/DemoArtemisConstants.java
@@ -1,4 +1,4 @@
-package org.dromara.daxpay.payment.admin.controller.demo.constant;
+package org.dromara.daxpay.demo.artemis;
/// # Artemis 消息队列演示常量
///
diff --git a/daxpay-payment/daxpay-payment-admin/src/main/java/org/dromara/daxpay/payment/admin/controller/demo/message/DemoArtemisMessage.java b/daxpay-demo/src/main/java/org/dromara/daxpay/demo/artemis/DemoArtemisMessage.java
similarity index 93%
rename from daxpay-payment/daxpay-payment-admin/src/main/java/org/dromara/daxpay/payment/admin/controller/demo/message/DemoArtemisMessage.java
rename to daxpay-demo/src/main/java/org/dromara/daxpay/demo/artemis/DemoArtemisMessage.java
index f573925d9..907946a9c 100644
--- a/daxpay-payment/daxpay-payment-admin/src/main/java/org/dromara/daxpay/payment/admin/controller/demo/message/DemoArtemisMessage.java
+++ b/daxpay-demo/src/main/java/org/dromara/daxpay/demo/artemis/DemoArtemisMessage.java
@@ -1,4 +1,4 @@
-package org.dromara.daxpay.payment.admin.controller.demo.message;
+package org.dromara.daxpay.demo.artemis;
import lombok.AllArgsConstructor;
import lombok.Data;
diff --git a/daxpay-payment/daxpay-payment-admin/src/main/java/org/dromara/daxpay/payment/admin/controller/demo/consumer/DemoDelayConsumer.java b/daxpay-demo/src/main/java/org/dromara/daxpay/demo/artemis/DemoDelayConsumer.java
similarity index 78%
rename from daxpay-payment/daxpay-payment-admin/src/main/java/org/dromara/daxpay/payment/admin/controller/demo/consumer/DemoDelayConsumer.java
rename to daxpay-demo/src/main/java/org/dromara/daxpay/demo/artemis/DemoDelayConsumer.java
index 0fe004afb..939df991e 100644
--- a/daxpay-payment/daxpay-payment-admin/src/main/java/org/dromara/daxpay/payment/admin/controller/demo/consumer/DemoDelayConsumer.java
+++ b/daxpay-demo/src/main/java/org/dromara/daxpay/demo/artemis/DemoDelayConsumer.java
@@ -1,11 +1,7 @@
-package org.dromara.daxpay.payment.admin.controller.demo.consumer;
+package org.dromara.daxpay.demo.artemis;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import org.dromara.daxpay.payment.admin.controller.demo.constant.DemoArtemisConstants;
-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.json.util.JacksonUtil;
import org.springframework.jms.annotation.JmsListener;
import org.springframework.stereotype.Component;
diff --git a/daxpay-payment/daxpay-payment-admin/src/main/java/org/dromara/daxpay/payment/admin/controller/demo/result/DemoMessageResult.java b/daxpay-demo/src/main/java/org/dromara/daxpay/demo/artemis/DemoMessageResult.java
similarity index 93%
rename from daxpay-payment/daxpay-payment-admin/src/main/java/org/dromara/daxpay/payment/admin/controller/demo/result/DemoMessageResult.java
rename to daxpay-demo/src/main/java/org/dromara/daxpay/demo/artemis/DemoMessageResult.java
index 2ec9b510e..ac725ae72 100644
--- a/daxpay-payment/daxpay-payment-admin/src/main/java/org/dromara/daxpay/payment/admin/controller/demo/result/DemoMessageResult.java
+++ b/daxpay-demo/src/main/java/org/dromara/daxpay/demo/artemis/DemoMessageResult.java
@@ -1,9 +1,8 @@
-package org.dromara.daxpay.payment.admin.controller.demo.result;
+package org.dromara.daxpay.demo.artemis;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.experimental.Accessors;
-import org.dromara.daxpay.payment.admin.controller.demo.message.DemoArtemisMessage;
import java.time.OffsetDateTime;
diff --git a/daxpay-payment/daxpay-payment-admin/src/main/java/org/dromara/daxpay/payment/admin/controller/demo/store/DemoMessageStore.java b/daxpay-demo/src/main/java/org/dromara/daxpay/demo/artemis/DemoMessageStore.java
similarity index 90%
rename from daxpay-payment/daxpay-payment-admin/src/main/java/org/dromara/daxpay/payment/admin/controller/demo/store/DemoMessageStore.java
rename to daxpay-demo/src/main/java/org/dromara/daxpay/demo/artemis/DemoMessageStore.java
index 881611710..e7a7cc78d 100644
--- a/daxpay-payment/daxpay-payment-admin/src/main/java/org/dromara/daxpay/payment/admin/controller/demo/store/DemoMessageStore.java
+++ b/daxpay-demo/src/main/java/org/dromara/daxpay/demo/artemis/DemoMessageStore.java
@@ -1,7 +1,6 @@
-package org.dromara.daxpay.payment.admin.controller.demo.store;
+package org.dromara.daxpay.demo.artemis;
import lombok.extern.slf4j.Slf4j;
-import org.dromara.daxpay.payment.admin.controller.demo.result.DemoMessageResult;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
diff --git a/daxpay-payment/daxpay-payment-admin/src/main/java/org/dromara/daxpay/payment/admin/controller/demo/consumer/DemoQueueConsumer.java b/daxpay-demo/src/main/java/org/dromara/daxpay/demo/artemis/DemoQueueConsumer.java
similarity index 75%
rename from daxpay-payment/daxpay-payment-admin/src/main/java/org/dromara/daxpay/payment/admin/controller/demo/consumer/DemoQueueConsumer.java
rename to daxpay-demo/src/main/java/org/dromara/daxpay/demo/artemis/DemoQueueConsumer.java
index c41be4520..aa2ee4ab0 100644
--- a/daxpay-payment/daxpay-payment-admin/src/main/java/org/dromara/daxpay/payment/admin/controller/demo/consumer/DemoQueueConsumer.java
+++ b/daxpay-demo/src/main/java/org/dromara/daxpay/demo/artemis/DemoQueueConsumer.java
@@ -1,11 +1,7 @@
-package org.dromara.daxpay.payment.admin.controller.demo.consumer;
+package org.dromara.daxpay.demo.artemis;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import org.dromara.daxpay.payment.admin.controller.demo.constant.DemoArtemisConstants;
-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.json.util.JacksonUtil;
import org.springframework.jms.annotation.JmsListener;
import org.springframework.stereotype.Component;
diff --git a/daxpay-payment/daxpay-payment-admin/src/main/java/org/dromara/daxpay/payment/admin/controller/demo/consumer/DemoTopicConsumer.java b/daxpay-demo/src/main/java/org/dromara/daxpay/demo/artemis/DemoTopicConsumer.java
similarity index 82%
rename from daxpay-payment/daxpay-payment-admin/src/main/java/org/dromara/daxpay/payment/admin/controller/demo/consumer/DemoTopicConsumer.java
rename to daxpay-demo/src/main/java/org/dromara/daxpay/demo/artemis/DemoTopicConsumer.java
index 6cea13a13..59e6dcda3 100644
--- a/daxpay-payment/daxpay-payment-admin/src/main/java/org/dromara/daxpay/payment/admin/controller/demo/consumer/DemoTopicConsumer.java
+++ b/daxpay-demo/src/main/java/org/dromara/daxpay/demo/artemis/DemoTopicConsumer.java
@@ -1,11 +1,7 @@
-package org.dromara.daxpay.payment.admin.controller.demo.consumer;
+package org.dromara.daxpay.demo.artemis;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import org.dromara.daxpay.payment.admin.controller.demo.constant.DemoArtemisConstants;
-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;
diff --git a/daxpay-payment/daxpay-payment-admin/src/main/java/org/dromara/daxpay/payment/admin/controller/demo/param/SendDemoMessageParam.java b/daxpay-demo/src/main/java/org/dromara/daxpay/demo/artemis/SendDemoMessageParam.java
similarity index 95%
rename from daxpay-payment/daxpay-payment-admin/src/main/java/org/dromara/daxpay/payment/admin/controller/demo/param/SendDemoMessageParam.java
rename to daxpay-demo/src/main/java/org/dromara/daxpay/demo/artemis/SendDemoMessageParam.java
index bdd29a703..b8fc5fe54 100644
--- a/daxpay-payment/daxpay-payment-admin/src/main/java/org/dromara/daxpay/payment/admin/controller/demo/param/SendDemoMessageParam.java
+++ b/daxpay-demo/src/main/java/org/dromara/daxpay/demo/artemis/SendDemoMessageParam.java
@@ -1,4 +1,4 @@
-package org.dromara.daxpay.payment.admin.controller.demo.param;
+package org.dromara.daxpay.demo.artemis;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.Max;
diff --git a/daxpay-start/pom.xml b/daxpay-start/pom.xml
index 95cc3851e..f31d2089d 100644
--- a/daxpay-start/pom.xml
+++ b/daxpay-start/pom.xml
@@ -60,6 +60,13 @@
${project.version}
+
+
+ org.dromara.daxpay
+ daxpay-demo
+ ${project.version}
+
+
org.postgresql
diff --git a/pom.xml b/pom.xml
index 4802c7f4b..f8615f89a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -17,6 +17,8 @@
daxpay-channel
daxpay-start
daxpay-plugin
+
+ daxpay-demo
25