diff --git a/dubbo-spring-xml-demo/pom.xml b/dubbo-spring-xml-demo/pom.xml
new file mode 100644
index 0000000..9e55a28
--- /dev/null
+++ b/dubbo-spring-xml-demo/pom.xml
@@ -0,0 +1,41 @@
+
+
+ 4.0.0
+
+ org.example
+ dubbo-spring-xml-demo
+ 1.0-SNAPSHOT
+
+
+ 17
+ 17
+ UTF-8
+
+
+
+ org.apache.dubbo
+ dubbo
+ 3.1.6
+
+
+
+ org.springframework
+ spring-context
+ 5.3.25
+
+
+
+ org.apache.curator
+ curator-x-discovery
+ 5.2.0
+
+
+ org.apache.zookeeper
+ zookeeper
+ 3.8.0
+
+
+
+
diff --git a/dubbo-spring-xml-demo/src/main/java/org/apache/dubbo/samples/api/GreetingsService.java b/dubbo-spring-xml-demo/src/main/java/org/apache/dubbo/samples/api/GreetingsService.java
new file mode 100644
index 0000000..9702db5
--- /dev/null
+++ b/dubbo-spring-xml-demo/src/main/java/org/apache/dubbo/samples/api/GreetingsService.java
@@ -0,0 +1,13 @@
+package org.apache.dubbo.samples.api;
+
+/**
+ * ClassName: GreetingsService
+ * Package: org.apache.dubbo.samples.api
+ *
+ * @author yovinchen
+ * @Create 2023/12/4 16:16
+ */
+public interface GreetingsService {
+
+ String sayHi(String name);
+}
diff --git a/dubbo-spring-xml-demo/src/main/java/org/apache/dubbo/samples/client/Application.java b/dubbo-spring-xml-demo/src/main/java/org/apache/dubbo/samples/client/Application.java
new file mode 100644
index 0000000..533eea4
--- /dev/null
+++ b/dubbo-spring-xml-demo/src/main/java/org/apache/dubbo/samples/client/Application.java
@@ -0,0 +1,27 @@
+package org.apache.dubbo.samples.client;
+
+import org.apache.dubbo.samples.api.GreetingsService;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+import java.io.IOException;
+
+/**
+ * ClassName: Application
+ * Package: org.apache.dubbo.samples.client
+ *
+ * @author yovinchen
+ * @Create 2023/12/4 16:18
+ */
+public class Application {
+ public static void main(String[] args) throws IOException {
+ ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("dubbo-demo-consumer.xml");
+ context.start();
+ GreetingsService greetingsService = (GreetingsService) context.getBean("greetingsService");
+
+ String message = greetingsService.sayHi("dubbo");
+ System.out.println("Receive result ======> " + message);
+ System.in.read();
+ System.exit(0);
+ }
+
+}
diff --git a/dubbo-spring-xml-demo/src/main/java/org/apache/dubbo/samples/provider/Application.java b/dubbo-spring-xml-demo/src/main/java/org/apache/dubbo/samples/provider/Application.java
new file mode 100644
index 0000000..b942482
--- /dev/null
+++ b/dubbo-spring-xml-demo/src/main/java/org/apache/dubbo/samples/provider/Application.java
@@ -0,0 +1,23 @@
+package org.apache.dubbo.samples.provider;
+
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+import java.util.concurrent.CountDownLatch;
+
+/**
+ * ClassName: Application
+ * Package: org.apache.dubbo.samples.provider
+ *
+ * @author yovinchen
+ * @Create 2023/12/4 16:18
+ */
+public class Application {
+
+ public static void main(String[] args) throws InterruptedException {
+ ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("dubbo-demo-provider.xml");
+ context.start();
+
+ // 挂起主线程,防止退出
+ new CountDownLatch(1).await();
+ }
+}
diff --git a/dubbo-spring-xml-demo/src/main/java/org/apache/dubbo/samples/provider/GreetingsServiceImpl.java b/dubbo-spring-xml-demo/src/main/java/org/apache/dubbo/samples/provider/GreetingsServiceImpl.java
new file mode 100644
index 0000000..b089e3a
--- /dev/null
+++ b/dubbo-spring-xml-demo/src/main/java/org/apache/dubbo/samples/provider/GreetingsServiceImpl.java
@@ -0,0 +1,17 @@
+package org.apache.dubbo.samples.provider;
+
+import org.apache.dubbo.samples.api.GreetingsService;
+
+/**
+ * ClassName: GreetingsServiceImpl
+ * Package: org.apache.dubbo.samples.provider
+ *
+ * @author yovinchen
+ * @Create 2023/12/4 16:16
+ */
+public class GreetingsServiceImpl implements GreetingsService {
+ @Override
+ public String sayHi(String name) {
+ return "hi, " + name;
+ }
+}
diff --git a/dubbo-spring-xml-demo/src/main/resources/dubbo-demo-consumer.xml b/dubbo-spring-xml-demo/src/main/resources/dubbo-demo-consumer.xml
new file mode 100644
index 0000000..a0a42a5
--- /dev/null
+++ b/dubbo-spring-xml-demo/src/main/resources/dubbo-demo-consumer.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dubbo-spring-xml-demo/src/main/resources/dubbo-demo-provider.xml b/dubbo-spring-xml-demo/src/main/resources/dubbo-demo-provider.xml
new file mode 100644
index 0000000..05e9ccc
--- /dev/null
+++ b/dubbo-spring-xml-demo/src/main/resources/dubbo-demo-provider.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+