diff --git a/lab-62/lab-62-sofarpc-annotations-demo/lab-62-sofarpc-annotations-demo-user-rpc-service-api/pom.xml b/lab-62/lab-62-sofarpc-annotations-demo/lab-62-sofarpc-annotations-demo-user-rpc-service-api/pom.xml new file mode 100644 index 00000000..065b0b88 --- /dev/null +++ b/lab-62/lab-62-sofarpc-annotations-demo/lab-62-sofarpc-annotations-demo-user-rpc-service-api/pom.xml @@ -0,0 +1,16 @@ + + + + lab-62-sofarpc-xml-demo + cn.iocoder.springboot.labs + 1.0-SNAPSHOT + + 4.0.0 + + lab-62-sofarpc-annotations-demo-user-rpc-service-api + + + + diff --git a/lab-62/lab-62-sofarpc-annotations-demo/lab-62-sofarpc-annotations-demo-user-rpc-service-api/src/main/java/cn/iocoder/springboot/lab62/rpc/api/UserRpcService.java b/lab-62/lab-62-sofarpc-annotations-demo/lab-62-sofarpc-annotations-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-annotations-demo/lab-62-sofarpc-annotations-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-annotations-demo/lab-62-sofarpc-annotations-demo-user-rpc-service-api/src/main/java/cn/iocoder/springboot/lab62/rpc/dto/UserAddDTO.java b/lab-62/lab-62-sofarpc-annotations-demo/lab-62-sofarpc-annotations-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-annotations-demo/lab-62-sofarpc-annotations-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-annotations-demo/lab-62-sofarpc-annotations-demo-user-rpc-service-api/src/main/java/cn/iocoder/springboot/lab62/rpc/dto/UserDTO.java b/lab-62/lab-62-sofarpc-annotations-demo/lab-62-sofarpc-annotations-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-annotations-demo/lab-62-sofarpc-annotations-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-annotations-demo/lab-62-sofarpc-annotations-demo-user-rpc-service-consumer/pom.xml b/lab-62/lab-62-sofarpc-annotations-demo/lab-62-sofarpc-annotations-demo-user-rpc-service-consumer/pom.xml new file mode 100644 index 00000000..1910695d --- /dev/null +++ b/lab-62/lab-62-sofarpc-annotations-demo/lab-62-sofarpc-annotations-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-annotations-demo-user-rpc-service-consumer + + + + + cn.iocoder.springboot.labs + lab-62-sofarpc-annotations-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-annotations-demo/lab-62-sofarpc-annotations-demo-user-rpc-service-consumer/src/main/java/cn/iocoder/springboot/lab62/rpc/ConsumerApplication.java b/lab-62/lab-62-sofarpc-annotations-demo/lab-62-sofarpc-annotations-demo-user-rpc-service-consumer/src/main/java/cn/iocoder/springboot/lab62/rpc/ConsumerApplication.java new file mode 100644 index 00000000..9e13db95 --- /dev/null +++ b/lab-62/lab-62-sofarpc-annotations-demo/lab-62-sofarpc-annotations-demo-user-rpc-service-consumer/src/main/java/cn/iocoder/springboot/lab62/rpc/ConsumerApplication.java @@ -0,0 +1,15 @@ +package cn.iocoder.springboot.lab62.rpc; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@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-annotations-demo/lab-62-sofarpc-annotations-demo-user-rpc-service-consumer/src/main/java/cn/iocoder/springboot/lab62/rpc/controller/UserController.java b/lab-62/lab-62-sofarpc-annotations-demo/lab-62-sofarpc-annotations-demo-user-rpc-service-consumer/src/main/java/cn/iocoder/springboot/lab62/rpc/controller/UserController.java new file mode 100644 index 00000000..ed29dd20 --- /dev/null +++ b/lab-62/lab-62-sofarpc-annotations-demo/lab-62-sofarpc-annotations-demo-user-rpc-service-consumer/src/main/java/cn/iocoder/springboot/lab62/rpc/controller/UserController.java @@ -0,0 +1,32 @@ +package cn.iocoder.springboot.lab62.rpc.controller; + +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 com.alipay.sofa.runtime.api.annotation.SofaReference; +import com.alipay.sofa.runtime.api.annotation.SofaReferenceBinding; +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 { + + @SofaReference(binding = @SofaReferenceBinding(bindingType = "bolt")) + 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-62/lab-62-sofarpc-annotations-demo/lab-62-sofarpc-annotations-demo-user-rpc-service-consumer/src/main/resources/application.yaml b/lab-62/lab-62-sofarpc-annotations-demo/lab-62-sofarpc-annotations-demo-user-rpc-service-consumer/src/main/resources/application.yaml new file mode 100644 index 00000000..f5299bd6 --- /dev/null +++ b/lab-62/lab-62-sofarpc-annotations-demo/lab-62-sofarpc-annotations-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 # SOFARPC 注解中心 diff --git a/lab-62/lab-62-sofarpc-annotations-demo/lab-62-sofarpc-annotations-demo-user-rpc-service-provider/pom.xml b/lab-62/lab-62-sofarpc-annotations-demo/lab-62-sofarpc-annotations-demo-user-rpc-service-provider/pom.xml new file mode 100644 index 00000000..2ce6d8da --- /dev/null +++ b/lab-62/lab-62-sofarpc-annotations-demo/lab-62-sofarpc-annotations-demo-user-rpc-service-provider/pom.xml @@ -0,0 +1,56 @@ + + + + + + + com.alipay.sofa + sofaboot-dependencies + 3.4.0 + + 4.0.0 + + lab-62-sofarpc-annotations-demo-user-rpc-service-provider + + + + + + + + + + + + + + + + cn.iocoder.springboot.labs + lab-62-sofarpc-annotations-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-annotations-demo/lab-62-sofarpc-annotations-demo-user-rpc-service-provider/src/main/java/cn/iocoder/springboot/lab62/rpc/ProviderApplication.java b/lab-62/lab-62-sofarpc-annotations-demo/lab-62-sofarpc-annotations-demo-user-rpc-service-provider/src/main/java/cn/iocoder/springboot/lab62/rpc/ProviderApplication.java new file mode 100644 index 00000000..89c2f0b7 --- /dev/null +++ b/lab-62/lab-62-sofarpc-annotations-demo/lab-62-sofarpc-annotations-demo-user-rpc-service-provider/src/main/java/cn/iocoder/springboot/lab62/rpc/ProviderApplication.java @@ -0,0 +1,15 @@ +package cn.iocoder.springboot.lab62.rpc; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@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-annotations-demo/lab-62-sofarpc-annotations-demo-user-rpc-service-provider/src/main/java/cn/iocoder/springboot/lab62/rpc/service/UserRpcServiceImpl.java b/lab-62/lab-62-sofarpc-annotations-demo/lab-62-sofarpc-annotations-demo-user-rpc-service-provider/src/main/java/cn/iocoder/springboot/lab62/rpc/service/UserRpcServiceImpl.java new file mode 100644 index 00000000..35fee263 --- /dev/null +++ b/lab-62/lab-62-sofarpc-annotations-demo/lab-62-sofarpc-annotations-demo-user-rpc-service-provider/src/main/java/cn/iocoder/springboot/lab62/rpc/service/UserRpcServiceImpl.java @@ -0,0 +1,27 @@ +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 com.alipay.sofa.runtime.api.annotation.SofaService; +import com.alipay.sofa.runtime.api.annotation.SofaServiceBinding; +import org.springframework.stereotype.Service; + +@Service +@SofaService(bindings = @SofaServiceBinding(bindingType = "bolt")) +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-annotations-demo/lab-62-sofarpc-annotations-demo-user-rpc-service-provider/src/main/resources/application.yaml b/lab-62/lab-62-sofarpc-annotations-demo/lab-62-sofarpc-annotations-demo-user-rpc-service-provider/src/main/resources/application.yaml new file mode 100644 index 00000000..9e8d2d35 --- /dev/null +++ b/lab-62/lab-62-sofarpc-annotations-demo/lab-62-sofarpc-annotations-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-annotations-demo/pom.xml b/lab-62/lab-62-sofarpc-annotations-demo/pom.xml new file mode 100644 index 00000000..00a8fb60 --- /dev/null +++ b/lab-62/lab-62-sofarpc-annotations-demo/pom.xml @@ -0,0 +1,21 @@ + + + + lab-62 + cn.iocoder.springboot.labs + 1.0-SNAPSHOT + + 4.0.0 + + lab-62-sofarpc-annotations-demo + pom + + + lab-62-sofarpc-annotations-demo-user-rpc-service-api + lab-62-sofarpc-annotations-demo-user-rpc-service-provider + lab-62-sofarpc-annotations-demo-user-rpc-service-consumer + + + 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 index 93cc320c..406f30ce 100644 --- 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 @@ -1,12 +1,10 @@ package cn.iocoder.springboot.lab62.rpc.controller; 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.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; +import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/user") @@ -20,4 +18,11 @@ public class UserController { 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-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 index f856006a..f5299bd6 100644 --- 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 @@ -2,4 +2,4 @@ spring: application: name: user-service-consumer # 应用名 -com.alipay.sofa.rpc.registry.address: zookeeper://127.0.0.1:2181 # SOFA RPC 注解中心 +com.alipay.sofa.rpc.registry.address: zookeeper://127.0.0.1:2181 # SOFARPC 注解中心 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 index 91819670..933e1148 100644 --- 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 @@ -8,7 +8,7 @@ com.alipay.sofa sofaboot-dependencies - 3.3.2 + 3.4.0 4.0.0 @@ -33,7 +33,7 @@ 1.0-SNAPSHOT - + org.springframework.boot spring-boot-starter 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 index 11f12a3d..9e8d2d35 100644 --- 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 @@ -2,4 +2,4 @@ spring: application: name: user-service-provider # 应用名 -com.alipay.sofa.rpc.registry.address: zookeeper://127.0.0.1:2181 # SOFA RPC 注解中心 +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 index 3e96aebd..44c6492c 100644 --- 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 @@ -10,7 +10,3 @@ - - - - diff --git a/lab-62/pom.xml b/lab-62/pom.xml index 3353b5b2..ada99022 100644 --- a/lab-62/pom.xml +++ b/lab-62/pom.xml @@ -14,6 +14,7 @@ lab-62-sofarpc-xml-demo + lab-62-sofarpc-annotations-demo diff --git a/lab-62/《》.md b/lab-62/《》.md new file mode 100644 index 00000000..e69de29b diff --git a/lab-63/lab-63-motan-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-consumer/pom.xml b/lab-63/lab-63-motan-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-consumer/pom.xml new file mode 100644 index 00000000..e6ac7a40 --- /dev/null +++ b/lab-63/lab-63-motan-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-63-sofarpc-xml-demo-user-rpc-service-consumer + + + + + cn.iocoder.springboot.labs + lab-63-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-63/lab-63-motan-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-consumer/src/main/java/cn/iocoder/springboot/lab62/rpc/ConsumerApplication.java b/lab-63/lab-63-motan-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..fe0da3c2 --- /dev/null +++ b/lab-63/lab-63-motan-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.lab63.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-63/lab-63-motan-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-consumer/src/main/java/cn/iocoder/springboot/lab62/rpc/controller/UserController.java b/lab-63/lab-63-motan-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..38221966 --- /dev/null +++ b/lab-63/lab-63-motan-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,28 @@ +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/user") +public class UserController { + + @Autowired + 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-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-consumer/src/main/resources/application.yaml b/lab-63/lab-63-motan-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-consumer/src/main/resources/application.yaml new file mode 100644 index 00000000..f5299bd6 --- /dev/null +++ b/lab-63/lab-63-motan-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 # SOFARPC 注解中心 diff --git a/lab-63/lab-63-motan-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-consumer/src/main/resources/sofarpc.xml b/lab-63/lab-63-motan-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-consumer/src/main/resources/sofarpc.xml new file mode 100644 index 00000000..65513a89 --- /dev/null +++ b/lab-63/lab-63-motan-xml-demo/lab-62-sofarpc-xml-demo-user-rpc-service-consumer/src/main/resources/sofarpc.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + diff --git a/lab-63/lab-63-motan-xml-demo/lab-63-motan-xml-demo-user-rpc-service-api/pom.xml b/lab-63/lab-63-motan-xml-demo/lab-63-motan-xml-demo-user-rpc-service-api/pom.xml new file mode 100644 index 00000000..76a90d3f --- /dev/null +++ b/lab-63/lab-63-motan-xml-demo/lab-63-motan-xml-demo-user-rpc-service-api/pom.xml @@ -0,0 +1,14 @@ + + + + lab-63-motan-xml-demo + cn.iocoder.springboot.labs + 1.0-SNAPSHOT + + 4.0.0 + + lab-63-motan-xml-demo-user-rpc-service-api + + diff --git a/lab-63/lab-63-motan-xml-demo/lab-63-motan-xml-demo-user-rpc-service-api/src/main/java/cn/iocoder/springboot/lab63/rpc/api/UserRpcService.java b/lab-63/lab-63-motan-xml-demo/lab-63-motan-xml-demo-user-rpc-service-api/src/main/java/cn/iocoder/springboot/lab63/rpc/api/UserRpcService.java new file mode 100644 index 00000000..15878518 --- /dev/null +++ b/lab-63/lab-63-motan-xml-demo/lab-63-motan-xml-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-xml-demo/lab-63-motan-xml-demo-user-rpc-service-api/src/main/java/cn/iocoder/springboot/lab63/rpc/dto/UserAddDTO.java b/lab-63/lab-63-motan-xml-demo/lab-63-motan-xml-demo-user-rpc-service-api/src/main/java/cn/iocoder/springboot/lab63/rpc/dto/UserAddDTO.java new file mode 100644 index 00000000..29229761 --- /dev/null +++ b/lab-63/lab-63-motan-xml-demo/lab-63-motan-xml-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-xml-demo/lab-63-motan-xml-demo-user-rpc-service-api/src/main/java/cn/iocoder/springboot/lab63/rpc/dto/UserDTO.java b/lab-63/lab-63-motan-xml-demo/lab-63-motan-xml-demo-user-rpc-service-api/src/main/java/cn/iocoder/springboot/lab63/rpc/dto/UserDTO.java new file mode 100644 index 00000000..b6941d1e --- /dev/null +++ b/lab-63/lab-63-motan-xml-demo/lab-63-motan-xml-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-xml-demo/lab-63-motan-xml-demo-user-rpc-service-provider/pom.xml b/lab-63/lab-63-motan-xml-demo/lab-63-motan-xml-demo-user-rpc-service-provider/pom.xml new file mode 100644 index 00000000..f8b6509f --- /dev/null +++ b/lab-63/lab-63-motan-xml-demo/lab-63-motan-xml-demo-user-rpc-service-provider/pom.xml @@ -0,0 +1,77 @@ + + + + lab-63-motan-xml-demo + cn.iocoder.springboot.labs + 1.0-SNAPSHOT + + 4.0.0 + + lab-63-motan-xml-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-xml-demo-user-rpc-service-api + 1.0-SNAPSHOT + + + + + org.springframework.boot + spring-boot-starter + + + + + com.weibo + motan-core + ${moton.version} + + + com.weibo + motan-transport-netty + ${moton.version} + + + com.weibo + motan-registry-zookeeper + ${moton.version} + + + com.weibo + motan-springsupport + ${moton.version} + + + + + + + + + + + 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 new file mode 100644 index 00000000..c16b2d49 --- /dev/null +++ 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 @@ -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:sofarpc.xml") +public class ProviderApplication { + + public static void main(String[] args) { + // 启动 Spring Boot 应用 + SpringApplication.run(ProviderApplication.class, args); + } + +} 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/service/UserRpcServiceImpl.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/service/UserRpcServiceImpl.java new file mode 100644 index 00000000..303f8da1 --- /dev/null +++ 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/service/UserRpcServiceImpl.java @@ -0,0 +1,24 @@ +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 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-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 new file mode 100644 index 00000000..9e8d2d35 --- /dev/null +++ b/lab-63/lab-63-motan-xml-demo/lab-63-motan-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-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 new file mode 100644 index 00000000..e69de29b diff --git a/lab-63/lab-63-motan-xml-demo/lab-63-motan-xml-demo-user-rpc-service-provider/src/main/resources/sofarpc.xml b/lab-63/lab-63-motan-xml-demo/lab-63-motan-xml-demo-user-rpc-service-provider/src/main/resources/sofarpc.xml new file mode 100644 index 00000000..e4d0a31e --- /dev/null +++ b/lab-63/lab-63-motan-xml-demo/lab-63-motan-xml-demo-user-rpc-service-provider/src/main/resources/sofarpc.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/lab-63/lab-63-motan-xml-demo/pom.xml b/lab-63/lab-63-motan-xml-demo/pom.xml new file mode 100644 index 00000000..e6722f96 --- /dev/null +++ b/lab-63/lab-63-motan-xml-demo/pom.xml @@ -0,0 +1,20 @@ + + + + lab-63 + cn.iocoder.springboot.labs + 1.0-SNAPSHOT + + 4.0.0 + + lab-63-motan-xml-demo + pom + + lab-63-motan-xml-demo-user-rpc-service-api + lab-63-motan-xml-demo-user-rpc-service-provider + + + + diff --git a/lab-63/pom.xml b/lab-63/pom.xml new file mode 100644 index 00000000..95efef5c --- /dev/null +++ b/lab-63/pom.xml @@ -0,0 +1,18 @@ + + + + labs-parent + cn.iocoder.springboot.labs + 1.0-SNAPSHOT + + 4.0.0 + + lab-63 + + + lab-63-motan-xml-demo + + + diff --git a/pom.xml b/pom.xml index cd8d9a06..f78d3213 100644 --- a/pom.xml +++ b/pom.xml @@ -72,6 +72,8 @@ + lab-62 + lab-63 @@ -100,7 +102,7 @@ - lab-62 +