diff --git a/lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-api/pom.xml b/lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-api/pom.xml
new file mode 100644
index 000000000..f09acb3e9
--- /dev/null
+++ b/lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-api/pom.xml
@@ -0,0 +1,14 @@
+
+
+
+ lab-63-motan-annotations-demo
+ cn.iocoder.springboot.labs
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+ lab-63-motan-annotations-demo-user-rpc-service-api
+
+
diff --git a/lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-api/src/main/java/cn/iocoder/springboot/lab63/rpc/api/UserRpcService.java b/lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-api/src/main/java/cn/iocoder/springboot/lab63/rpc/api/UserRpcService.java
new file mode 100644
index 000000000..158785180
--- /dev/null
+++ b/lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-api/src/main/java/cn/iocoder/springboot/lab63/rpc/api/UserRpcService.java
@@ -0,0 +1,27 @@
+package cn.iocoder.springboot.lab63.rpc.api;
+
+import cn.iocoder.springboot.lab63.rpc.dto.UserAddDTO;
+import cn.iocoder.springboot.lab63.rpc.dto.UserDTO;
+
+/**
+ * 用户服务 RPC Service 接口
+ */
+public interface UserRpcService {
+
+ /**
+ * 根据指定用户编号,获得用户信息
+ *
+ * @param id 用户编号
+ * @return 用户信息
+ */
+ UserDTO get(Integer id);
+
+ /**
+ * 添加新用户,返回新添加的用户编号
+ *
+ * @param addDTO 添加的用户信息
+ * @return 用户编号
+ */
+ Integer add(UserAddDTO addDTO);
+
+}
diff --git a/lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-api/src/main/java/cn/iocoder/springboot/lab63/rpc/dto/UserAddDTO.java b/lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-api/src/main/java/cn/iocoder/springboot/lab63/rpc/dto/UserAddDTO.java
new file mode 100644
index 000000000..292297614
--- /dev/null
+++ b/lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-api/src/main/java/cn/iocoder/springboot/lab63/rpc/dto/UserAddDTO.java
@@ -0,0 +1,37 @@
+package cn.iocoder.springboot.lab63.rpc.dto;
+
+import java.io.Serializable;
+
+/**
+ * 用户添加 DTO
+ */
+public class UserAddDTO implements Serializable {
+
+ /**
+ * 昵称
+ */
+ private String name;
+ /**
+ * 性别
+ */
+ private Integer gender;
+
+ public String getName() {
+ return name;
+ }
+
+ public UserAddDTO setName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ public Integer getGender() {
+ return gender;
+ }
+
+ public UserAddDTO setGender(Integer gender) {
+ this.gender = gender;
+ return this;
+ }
+
+}
diff --git a/lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-api/src/main/java/cn/iocoder/springboot/lab63/rpc/dto/UserDTO.java b/lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-api/src/main/java/cn/iocoder/springboot/lab63/rpc/dto/UserDTO.java
new file mode 100644
index 000000000..b6941d1ee
--- /dev/null
+++ b/lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-api/src/main/java/cn/iocoder/springboot/lab63/rpc/dto/UserDTO.java
@@ -0,0 +1,49 @@
+package cn.iocoder.springboot.lab63.rpc.dto;
+
+import java.io.Serializable;
+
+/**
+ * 用户信息 DTO
+ */
+public class UserDTO implements Serializable {
+
+ /**
+ * 用户编号
+ */
+ private Integer id;
+ /**
+ * 昵称
+ */
+ private String name;
+ /**
+ * 性别
+ */
+ private Integer gender;
+
+ public Integer getId() {
+ return id;
+ }
+
+ public UserDTO setId(Integer id) {
+ this.id = id;
+ return this;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public UserDTO setName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ public Integer getGender() {
+ return gender;
+ }
+
+ public UserDTO setGender(Integer gender) {
+ this.gender = gender;
+ return this;
+ }
+}
diff --git a/lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-consumer/pom.xml b/lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-consumer/pom.xml
new file mode 100644
index 000000000..ed4de02dc
--- /dev/null
+++ b/lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-consumer/pom.xml
@@ -0,0 +1,71 @@
+
+
+
+ lab-63-motan-annotations-demo
+ cn.iocoder.springboot.labs
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+ lab-63-motan-annotations-demo-user-rpc-service-consumer
+
+
+ 1.8
+ 1.8
+ 2.2.4.RELEASE
+ 1.1.8
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ ${spring.boot.version}
+ pom
+ import
+
+
+
+
+
+
+
+ cn.iocoder.springboot.labs
+ lab-63-motan-annotations-demo-user-rpc-service-api
+ 1.0-SNAPSHOT
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+
+ com.weibo
+ motan-core
+ ${moton.version}
+
+
+ com.weibo
+ motan-transport-netty4
+ ${moton.version}
+
+
+ com.weibo
+ motan-registry-zookeeper
+ ${moton.version}
+
+
+ com.weibo
+ motan-springsupport
+ ${moton.version}
+
+
+
+
+
diff --git a/lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-consumer/src/main/java/cn/iocoder/springboot/lab63/rpc/ConsumerApplication.java b/lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-consumer/src/main/java/cn/iocoder/springboot/lab63/rpc/ConsumerApplication.java
new file mode 100644
index 000000000..b51093c78
--- /dev/null
+++ b/lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-consumer/src/main/java/cn/iocoder/springboot/lab63/rpc/ConsumerApplication.java
@@ -0,0 +1,16 @@
+package cn.iocoder.springboot.lab63.rpc;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.ImportResource;
+
+@SpringBootApplication
+@ImportResource("classpath:motan.xml")
+public class ConsumerApplication {
+
+ public static void main(String[] args) {
+ // 启动 Spring Boot 应用
+ SpringApplication.run(ConsumerApplication.class, args);;
+ }
+
+}
diff --git a/lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-consumer/src/main/java/cn/iocoder/springboot/lab63/rpc/controller/UserController.java b/lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-consumer/src/main/java/cn/iocoder/springboot/lab63/rpc/controller/UserController.java
new file mode 100644
index 000000000..5c3f43b2a
--- /dev/null
+++ b/lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-consumer/src/main/java/cn/iocoder/springboot/lab63/rpc/controller/UserController.java
@@ -0,0 +1,32 @@
+package cn.iocoder.springboot.lab63.rpc.controller;
+
+import cn.iocoder.springboot.lab63.rpc.api.UserRpcService;
+import cn.iocoder.springboot.lab63.rpc.dto.UserAddDTO;
+import cn.iocoder.springboot.lab63.rpc.dto.UserDTO;
+import com.weibo.api.motan.config.springsupport.annotation.MotanReferer;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/user")
+public class UserController {
+
+// @Autowired
+ @MotanReferer
+ private UserRpcService userRpcService;
+
+ @GetMapping("/get")
+ public UserDTO get(@RequestParam("id") Integer id) {
+ return userRpcService.get(id);
+ }
+
+ @GetMapping("/add") // 为了方便测试,实际使用 @PostMapping
+ public Integer add(@RequestParam("name") String name,
+ @RequestParam("gender") Integer gender) {
+ UserAddDTO addDTO = new UserAddDTO().setName(name).setGender(gender);
+ return userRpcService.add(addDTO);
+ }
+
+}
diff --git a/lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-consumer/src/main/resources/motan.xml b/lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-consumer/src/main/resources/motan.xml
new file mode 100644
index 000000000..ac4fcabbf
--- /dev/null
+++ b/lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-consumer/src/main/resources/motan.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-provider/pom.xml b/lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-provider/pom.xml
new file mode 100644
index 000000000..9597fa63c
--- /dev/null
+++ b/lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-provider/pom.xml
@@ -0,0 +1,71 @@
+
+
+
+ lab-63-motan-annotations-demo
+ cn.iocoder.springboot.labs
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+ lab-63-motan-annotations-demo-user-rpc-service-provider
+
+
+ 1.8
+ 1.8
+ 2.2.4.RELEASE
+ 1.1.8
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ ${spring.boot.version}
+ pom
+ import
+
+
+
+
+
+
+
+ cn.iocoder.springboot.labs
+ lab-63-motan-annotations-demo-user-rpc-service-api
+ 1.0-SNAPSHOT
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter
+
+
+
+
+ com.weibo
+ motan-core
+ ${moton.version}
+
+
+ com.weibo
+ motan-transport-netty4
+ ${moton.version}
+
+
+ com.weibo
+ motan-registry-zookeeper
+ ${moton.version}
+
+
+ com.weibo
+ motan-springsupport
+ ${moton.version}
+
+
+
+
+
diff --git a/lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-provider/src/main/java/cn/iocoder/springboot/lab63/rpc/ProviderApplication.java b/lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-provider/src/main/java/cn/iocoder/springboot/lab63/rpc/ProviderApplication.java
new file mode 100644
index 000000000..ec3623698
--- /dev/null
+++ b/lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-provider/src/main/java/cn/iocoder/springboot/lab63/rpc/ProviderApplication.java
@@ -0,0 +1,20 @@
+package cn.iocoder.springboot.lab63.rpc;
+
+import com.weibo.api.motan.common.MotanConstants;
+import com.weibo.api.motan.util.MotanSwitcherUtil;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.ImportResource;
+
+@SpringBootApplication
+@ImportResource("classpath:motan.xml")
+public class ProviderApplication {
+
+ public static void main(String[] args) {
+ // 启动 Spring Boot 应用
+ SpringApplication.run(ProviderApplication.class, args);
+ // 设置 Motan 开启对外服务
+ MotanSwitcherUtil.setSwitcherValue(MotanConstants.REGISTRY_HEARTBEAT_SWITCHER, true);
+ }
+
+}
diff --git a/lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-provider/src/main/java/cn/iocoder/springboot/lab63/rpc/service/UserRpcServiceImpl.java b/lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-provider/src/main/java/cn/iocoder/springboot/lab63/rpc/service/UserRpcServiceImpl.java
new file mode 100644
index 000000000..3845c76b8
--- /dev/null
+++ b/lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-provider/src/main/java/cn/iocoder/springboot/lab63/rpc/service/UserRpcServiceImpl.java
@@ -0,0 +1,26 @@
+package cn.iocoder.springboot.lab63.rpc.service;
+
+
+import cn.iocoder.springboot.lab63.rpc.api.UserRpcService;
+import cn.iocoder.springboot.lab63.rpc.dto.UserAddDTO;
+import cn.iocoder.springboot.lab63.rpc.dto.UserDTO;
+import com.weibo.api.motan.config.springsupport.annotation.MotanService;
+import org.springframework.stereotype.Service;
+
+@Service
+@MotanService(export = "motan2:8001")
+public class UserRpcServiceImpl implements UserRpcService {
+
+ @Override
+ public UserDTO get(Integer id) {
+ return new UserDTO().setId(id)
+ .setName("没有昵称:" + id)
+ .setGender(id % 2 + 1); // 1 - 男;2 - 女
+ }
+
+ @Override
+ public Integer add(UserAddDTO addDTO) {
+ return (int) (System.currentTimeMillis() / 1000); // 嘿嘿,随便返回一个 id
+ }
+
+}
diff --git a/lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-provider/src/main/resources/motan.xml b/lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-provider/src/main/resources/motan.xml
new file mode 100644
index 000000000..71250dd0d
--- /dev/null
+++ b/lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-provider/src/main/resources/motan.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/lab-63/lab-63-motan-annotations-demo/pom.xml b/lab-63/lab-63-motan-annotations-demo/pom.xml
new file mode 100644
index 000000000..de6847d74
--- /dev/null
+++ b/lab-63/lab-63-motan-annotations-demo/pom.xml
@@ -0,0 +1,20 @@
+
+
+
+ lab-63
+ cn.iocoder.springboot.labs
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+ lab-63-motan-annotations-demo
+ pom
+
+ lab-63-motan-annotations-demo-user-rpc-service-api
+ lab-63-motan-annotations-demo-user-rpc-service-provider
+ lab-63-motan-annotations-demo-user-rpc-service-consumer
+
+
+
diff --git a/lab-63/lab-63-motan-xml-demo/lab-63-motan-xml-demo-user-rpc-service-consumer/src/main/resources/application.yaml b/lab-63/lab-63-motan-xml-demo/lab-63-motan-xml-demo-user-rpc-service-consumer/src/main/resources/application.yaml
deleted file mode 100644
index 15227189c..000000000
--- a/lab-63/lab-63-motan-xml-demo/lab-63-motan-xml-demo-user-rpc-service-consumer/src/main/resources/application.yaml
+++ /dev/null
@@ -1,3 +0,0 @@
-spring:
- application:
- name: user-service-consumer # 应用名
diff --git a/lab-63/lab-63-motan-xml-demo/lab-63-motan-xml-demo-user-rpc-service-consumer/src/main/resources/motan.xml b/lab-63/lab-63-motan-xml-demo/lab-63-motan-xml-demo-user-rpc-service-consumer/src/main/resources/motan.xml
index 4011a4025..1120a8094 100644
--- a/lab-63/lab-63-motan-xml-demo/lab-63-motan-xml-demo-user-rpc-service-consumer/src/main/resources/motan.xml
+++ b/lab-63/lab-63-motan-xml-demo/lab-63-motan-xml-demo-user-rpc-service-consumer/src/main/resources/motan.xml
@@ -4,13 +4,15 @@
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://api.weibo.com/schema/motan http://api.weibo.com/schema/motan.xsd">
-
+
-
-
+
+
+
diff --git a/lab-63/lab-63-motan-xml-demo/lab-63-motan-xml-demo-user-rpc-service-provider/src/main/java/cn/iocoder/springboot/lab63/rpc/ProviderApplication.java b/lab-63/lab-63-motan-xml-demo/lab-63-motan-xml-demo-user-rpc-service-provider/src/main/java/cn/iocoder/springboot/lab63/rpc/ProviderApplication.java
index db71f5416..ec3623698 100644
--- a/lab-63/lab-63-motan-xml-demo/lab-63-motan-xml-demo-user-rpc-service-provider/src/main/java/cn/iocoder/springboot/lab63/rpc/ProviderApplication.java
+++ b/lab-63/lab-63-motan-xml-demo/lab-63-motan-xml-demo-user-rpc-service-provider/src/main/java/cn/iocoder/springboot/lab63/rpc/ProviderApplication.java
@@ -11,9 +11,9 @@
public class ProviderApplication {
public static void main(String[] args) {
-
// 启动 Spring Boot 应用
SpringApplication.run(ProviderApplication.class, args);
+ // 设置 Motan 开启对外服务
MotanSwitcherUtil.setSwitcherValue(MotanConstants.REGISTRY_HEARTBEAT_SWITCHER, true);
}
diff --git a/lab-63/lab-63-motan-xml-demo/lab-63-motan-xml-demo-user-rpc-service-provider/src/main/resources/application.yaml b/lab-63/lab-63-motan-xml-demo/lab-63-motan-xml-demo-user-rpc-service-provider/src/main/resources/application.yaml
deleted file mode 100644
index 6bc94f31d..000000000
--- a/lab-63/lab-63-motan-xml-demo/lab-63-motan-xml-demo-user-rpc-service-provider/src/main/resources/application.yaml
+++ /dev/null
@@ -1,3 +0,0 @@
-spring:
- application:
- name: user-service-provider # 应用名
diff --git a/lab-63/lab-63-motan-xml-demo/lab-63-motan-xml-demo-user-rpc-service-provider/src/main/resources/motan.xml b/lab-63/lab-63-motan-xml-demo/lab-63-motan-xml-demo-user-rpc-service-provider/src/main/resources/motan.xml
index b255d8f60..f26f1acce 100644
--- a/lab-63/lab-63-motan-xml-demo/lab-63-motan-xml-demo-user-rpc-service-provider/src/main/resources/motan.xml
+++ b/lab-63/lab-63-motan-xml-demo/lab-63-motan-xml-demo-user-rpc-service-provider/src/main/resources/motan.xml
@@ -4,19 +4,15 @@
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://api.weibo.com/schema/motan http://api.weibo.com/schema/motan.xsd">
-
-
+
+
-
-
-
-
-
-
-
+
+
diff --git a/lab-63/pom.xml b/lab-63/pom.xml
index 95efef5c6..a16873b13 100644
--- a/lab-63/pom.xml
+++ b/lab-63/pom.xml
@@ -13,6 +13,7 @@
lab-63-motan-xml-demo
+ lab-63-motan-annotations-demo