From 2a2720e6febc75ef031b3e26d3dcad7be0b87df8 Mon Sep 17 00:00:00 2001
From: YunaiV <>
Date: Tue, 9 Jun 2020 21:05:28 +0800
Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20SOFARPC=20=E5=85=A5?=
=?UTF-8?q?=E9=97=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../pom.xml | 14 +++++
.../lab62/rpc/api/UserRpcService.java | 27 +++++++++
.../springboot/lab62/rpc/dto/UserAddDTO.java | 37 ++++++++++++
.../springboot/lab62/rpc/dto/UserDTO.java | 49 ++++++++++++++++
.../pom.xml | 45 +++++++++++++++
.../lab62/rpc/ConsumerApplication.java | 16 ++++++
.../lab62/rpc/controller/UserController.java | 23 ++++++++
.../src/main/resources/application.yaml | 5 ++
.../src/main/resources/sofarpc.xml | 16 ++++++
.../pom.xml | 56 +++++++++++++++++++
.../lab62/rpc/ProviderApplication.java | 16 ++++++
.../lab62/rpc/service/UserRpcServiceImpl.java | 24 ++++++++
.../src/main/resources/application.yaml | 5 ++
.../src/main/resources/sofarpc.xml | 16 ++++++
lab-62/lab-62-sofarpc-xml-demo/pom.xml | 20 +++++++
15 files changed, 369 insertions(+)
create mode 100644 lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-api/pom.xml
create mode 100644 lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-api/src/main/java/cn/iocoder/springboot/lab62/rpc/api/UserRpcService.java
create mode 100644 lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-api/src/main/java/cn/iocoder/springboot/lab62/rpc/dto/UserAddDTO.java
create mode 100644 lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-api/src/main/java/cn/iocoder/springboot/lab62/rpc/dto/UserDTO.java
create mode 100644 lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-consumer/pom.xml
create mode 100644 lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-consumer/src/main/java/cn/iocoder/springboot/lab62/rpc/ConsumerApplication.java
create mode 100644 lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-consumer/src/main/java/cn/iocoder/springboot/lab62/rpc/controller/UserController.java
create mode 100644 lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-consumer/src/main/resources/application.yaml
create mode 100644 lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-consumer/src/main/resources/sofarpc.xml
create mode 100644 lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-provider/pom.xml
create mode 100644 lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-provider/src/main/java/cn/iocoder/springboot/lab62/rpc/ProviderApplication.java
create mode 100644 lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-provider/src/main/java/cn/iocoder/springboot/lab62/rpc/service/UserRpcServiceImpl.java
create mode 100644 lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-provider/src/main/resources/application.yaml
create mode 100644 lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-provider/src/main/resources/sofarpc.xml
create mode 100644 lab-62/lab-62-sofarpc-xml-demo/pom.xml
diff --git a/lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-api/pom.xml b/lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-api/pom.xml
new file mode 100644
index 00000000..86274d12
--- /dev/null
+++ b/lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-api/pom.xml
@@ -0,0 +1,14 @@
+
+
+
+ lab-62-sofarpc-xml-demo
+ cn.iocoder.springboot.labs
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+ lab-62-sofarpc-xml-demo-user-rpc-service-api
+
+
diff --git a/lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-api/src/main/java/cn/iocoder/springboot/lab62/rpc/api/UserRpcService.java b/lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-api/src/main/java/cn/iocoder/springboot/lab62/rpc/api/UserRpcService.java
new file mode 100644
index 00000000..b79c3f12
--- /dev/null
+++ b/lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-api/src/main/java/cn/iocoder/springboot/lab62/rpc/api/UserRpcService.java
@@ -0,0 +1,27 @@
+package cn.iocoder.springboot.lab62.rpc.api;
+
+import cn.iocoder.springboot.lab62.rpc.dto.UserAddDTO;
+import cn.iocoder.springboot.lab62.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-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-api/src/main/java/cn/iocoder/springboot/lab62/rpc/dto/UserAddDTO.java b/lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-api/src/main/java/cn/iocoder/springboot/lab62/rpc/dto/UserAddDTO.java
new file mode 100644
index 00000000..f0840f1c
--- /dev/null
+++ b/lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-api/src/main/java/cn/iocoder/springboot/lab62/rpc/dto/UserAddDTO.java
@@ -0,0 +1,37 @@
+package cn.iocoder.springboot.lab62.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-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-api/src/main/java/cn/iocoder/springboot/lab62/rpc/dto/UserDTO.java b/lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-api/src/main/java/cn/iocoder/springboot/lab62/rpc/dto/UserDTO.java
new file mode 100644
index 00000000..d9b70074
--- /dev/null
+++ b/lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-api/src/main/java/cn/iocoder/springboot/lab62/rpc/dto/UserDTO.java
@@ -0,0 +1,49 @@
+package cn.iocoder.springboot.lab62.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-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-consumer/pom.xml b/lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-consumer/pom.xml
new file mode 100644
index 00000000..d50fd999
--- /dev/null
+++ b/lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-consumer/pom.xml
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+ com.alipay.sofa
+ sofaboot-dependencies
+ 3.3.2
+
+ 4.0.0
+
+ lab-62-sofarpc-xml-demo-user-rpc-service-consumer
+
+
+
+
+ cn.iocoder.springboot.labs
+ lab-62-sofarpc-xml-demo-user-rpc-service-api
+ 1.0-SNAPSHOT
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+
+ com.alipay.sofa
+ rpc-sofa-boot-starter
+
+
+
+
+ org.apache.curator
+ curator-framework
+
+
+
+
+
diff --git a/lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-consumer/src/main/java/cn/iocoder/springboot/lab62/rpc/ConsumerApplication.java b/lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-consumer/src/main/java/cn/iocoder/springboot/lab62/rpc/ConsumerApplication.java
new file mode 100644
index 00000000..63b8f478
--- /dev/null
+++ b/lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-consumer/src/main/java/cn/iocoder/springboot/lab62/rpc/ConsumerApplication.java
@@ -0,0 +1,16 @@
+package cn.iocoder.springboot.lab62.rpc;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.ImportResource;
+
+@SpringBootApplication
+@ImportResource("classpath:sofarpc.xml")
+public class ConsumerApplication {
+
+ public static void main(String[] args) {
+ // 启动 Spring Boot 应用
+ SpringApplication.run(ConsumerApplication.class, args);;
+ }
+
+}
diff --git a/lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-consumer/src/main/java/cn/iocoder/springboot/lab62/rpc/controller/UserController.java b/lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-consumer/src/main/java/cn/iocoder/springboot/lab62/rpc/controller/UserController.java
new file mode 100644
index 00000000..93cc320c
--- /dev/null
+++ b/lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-consumer/src/main/java/cn/iocoder/springboot/lab62/rpc/controller/UserController.java
@@ -0,0 +1,23 @@
+package cn.iocoder.springboot.lab62.rpc.controller;
+
+import cn.iocoder.springboot.lab62.rpc.api.UserRpcService;
+import cn.iocoder.springboot.lab62.rpc.dto.UserDTO;
+import org.springframework.beans.factory.annotation.Autowired;
+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
+ private UserRpcService userRpcService;
+
+ @GetMapping("/get")
+ public UserDTO get(@RequestParam("id") Integer id) {
+ return userRpcService.get(id);
+ }
+
+}
diff --git a/lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-consumer/src/main/resources/application.yaml b/lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-consumer/src/main/resources/application.yaml
new file mode 100644
index 00000000..f856006a
--- /dev/null
+++ b/lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-consumer/src/main/resources/application.yaml
@@ -0,0 +1,5 @@
+spring:
+ application:
+ name: user-service-consumer # 应用名
+
+com.alipay.sofa.rpc.registry.address: zookeeper://127.0.0.1:2181 # SOFA RPC 注解中心
diff --git a/lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-consumer/src/main/resources/sofarpc.xml b/lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-consumer/src/main/resources/sofarpc.xml
new file mode 100644
index 00000000..2437f5d5
--- /dev/null
+++ b/lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-consumer/src/main/resources/sofarpc.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-provider/pom.xml b/lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-provider/pom.xml
new file mode 100644
index 00000000..91819670
--- /dev/null
+++ b/lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-provider/pom.xml
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+ com.alipay.sofa
+ sofaboot-dependencies
+ 3.3.2
+
+ 4.0.0
+
+ lab-62-sofarpc-xml-demo-user-rpc-service-provider
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ cn.iocoder.springboot.labs
+ lab-62-sofarpc-xml-demo-user-rpc-service-api
+ 1.0-SNAPSHOT
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter
+
+
+
+
+ com.alipay.sofa
+ rpc-sofa-boot-starter
+
+
+
+
+ org.apache.curator
+ curator-framework
+
+
+
+
+
diff --git a/lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-provider/src/main/java/cn/iocoder/springboot/lab62/rpc/ProviderApplication.java b/lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-provider/src/main/java/cn/iocoder/springboot/lab62/rpc/ProviderApplication.java
new file mode 100644
index 00000000..d2aef278
--- /dev/null
+++ b/lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-provider/src/main/java/cn/iocoder/springboot/lab62/rpc/ProviderApplication.java
@@ -0,0 +1,16 @@
+package cn.iocoder.springboot.lab62.rpc;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.ImportResource;
+
+@SpringBootApplication
+@ImportResource("classpath:sofarpc.xml")
+public class ProviderApplication {
+
+ public static void main(String[] args) {
+ // 启动 Spring Boot 应用
+ SpringApplication.run(ProviderApplication.class, args);
+ }
+
+}
diff --git a/lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-provider/src/main/java/cn/iocoder/springboot/lab62/rpc/service/UserRpcServiceImpl.java b/lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-provider/src/main/java/cn/iocoder/springboot/lab62/rpc/service/UserRpcServiceImpl.java
new file mode 100644
index 00000000..d56a0b12
--- /dev/null
+++ b/lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-provider/src/main/java/cn/iocoder/springboot/lab62/rpc/service/UserRpcServiceImpl.java
@@ -0,0 +1,24 @@
+package cn.iocoder.springboot.lab62.rpc.service;
+
+
+import cn.iocoder.springboot.lab62.rpc.api.UserRpcService;
+import cn.iocoder.springboot.lab62.rpc.dto.UserAddDTO;
+import cn.iocoder.springboot.lab62.rpc.dto.UserDTO;
+import org.springframework.stereotype.Service;
+
+@Service
+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-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-provider/src/main/resources/application.yaml b/lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-provider/src/main/resources/application.yaml
new file mode 100644
index 00000000..11f12a3d
--- /dev/null
+++ b/lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-provider/src/main/resources/application.yaml
@@ -0,0 +1,5 @@
+spring:
+ application:
+ name: user-service-provider # 应用名
+
+com.alipay.sofa.rpc.registry.address: zookeeper://127.0.0.1:2181 # SOFA RPC 注解中心
diff --git a/lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-provider/src/main/resources/sofarpc.xml b/lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-provider/src/main/resources/sofarpc.xml
new file mode 100644
index 00000000..3e96aebd
--- /dev/null
+++ b/lab-62/lab-62-sofarpc-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-provider/src/main/resources/sofarpc.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/lab-62/lab-62-sofarpc-xml-demo/pom.xml b/lab-62/lab-62-sofarpc-xml-demo/pom.xml
new file mode 100644
index 00000000..744ec1c4
--- /dev/null
+++ b/lab-62/lab-62-sofarpc-xml-demo/pom.xml
@@ -0,0 +1,20 @@
+
+
+
+ lab-62
+ cn.iocoder.springboot.labs
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+ lab-62-sofarpc-xml-demo
+ pom
+
+ lab-62-sofarpc-xml-demo-user-rpc-service-api
+ lab-62-sofarpc-xml-demo-user-rpc-service-provider
+ lab-62-sofarpc-xml-demo-user-rpc-service-consumer
+
+
+