From 7efaa26c65fc1bd64502cffad4d5512f30ab532a Mon Sep 17 00:00:00 2001 From: YunaiV <> Date: Thu, 11 Jun 2020 09:29:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20Motan=20=E5=85=A5=E9=97=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pom.xml | 14 ++++ .../lab63/rpc/api/UserRpcService.java | 27 +++++++ .../springboot/lab63/rpc/dto/UserAddDTO.java | 37 ++++++++++ .../springboot/lab63/rpc/dto/UserDTO.java | 49 +++++++++++++ .../pom.xml | 71 +++++++++++++++++++ .../lab63/rpc/ConsumerApplication.java | 16 +++++ .../lab63/rpc/controller/UserController.java | 32 +++++++++ .../src/main/resources/motan.xml | 18 +++++ .../pom.xml | 71 +++++++++++++++++++ .../lab63/rpc/ProviderApplication.java | 20 ++++++ .../lab63/rpc/service/UserRpcServiceImpl.java | 26 +++++++ .../src/main/resources/motan.xml | 20 ++++++ lab-63/lab-63-motan-annotations-demo/pom.xml | 20 ++++++ .../src/main/resources/application.yaml | 3 - .../src/main/resources/motan.xml | 10 +-- .../lab63/rpc/ProviderApplication.java | 2 +- .../src/main/resources/application.yaml | 3 - .../src/main/resources/motan.xml | 14 ++-- lab-63/pom.xml | 1 + 19 files changed, 434 insertions(+), 20 deletions(-) create mode 100644 lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-api/pom.xml create mode 100644 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 create mode 100644 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 create mode 100644 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 create mode 100644 lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-consumer/pom.xml create mode 100644 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 create mode 100644 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 create mode 100644 lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-consumer/src/main/resources/motan.xml create mode 100644 lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-provider/pom.xml create mode 100644 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 create mode 100644 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 create mode 100644 lab-63/lab-63-motan-annotations-demo/lab-63-motan-annotations-demo-user-rpc-service-provider/src/main/resources/motan.xml create mode 100644 lab-63/lab-63-motan-annotations-demo/pom.xml delete mode 100644 lab-63/lab-63-motan-xml-demo/lab-63-motan-xml-demo-user-rpc-service-consumer/src/main/resources/application.yaml delete mode 100644 lab-63/lab-63-motan-xml-demo/lab-63-motan-xml-demo-user-rpc-service-provider/src/main/resources/application.yaml 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 00000000..f09acb3e --- /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 00000000..15878518 --- /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 00000000..29229761 --- /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 00000000..b6941d1e --- /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 00000000..ed4de02d --- /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 00000000..b51093c7 --- /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 00000000..5c3f43b2 --- /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 00000000..ac4fcabb --- /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 00000000..9597fa63 --- /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 00000000..ec362369 --- /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 00000000..3845c76b --- /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 00000000..71250dd0 --- /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 00000000..de6847d7 --- /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 15227189..00000000 --- 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 4011a402..1120a809 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 db71f541..ec362369 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 @@ import org.springframework.context.annotation.ImportResource; 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 6bc94f31..00000000 --- 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 b255d8f6..f26f1acc 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 95efef5c..a16873b1 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