From ff415087ddfee73ce0f7136df267d3ab50bc2e47 Mon Sep 17 00:00:00 2001 From: YunaiV <> Date: Sat, 23 May 2020 15:58:44 +0800 Subject: [PATCH] =?UTF-8?q?soul=20=E7=A4=BA=E4=BE=8B=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lab-60/lab-60-soul-spring-cloud-demo/pom.xml | 73 +++++++++++++++++++ .../springcloud/lab60/DemoApplication.java | 13 ++++ .../lab60/controller/UserController.java | 28 +++++++ .../springcloud/lab60/dto/UserCreateDTO.java | 34 +++++++++ .../src/main/resources/application.yaml | 16 ++++ lab-60/pom.xml | 1 + 6 files changed, 165 insertions(+) create mode 100644 lab-60/lab-60-soul-spring-cloud-demo/pom.xml create mode 100644 lab-60/lab-60-soul-spring-cloud-demo/src/main/java/cn/iocoder/springcloud/lab60/DemoApplication.java create mode 100644 lab-60/lab-60-soul-spring-cloud-demo/src/main/java/cn/iocoder/springcloud/lab60/controller/UserController.java create mode 100644 lab-60/lab-60-soul-spring-cloud-demo/src/main/java/cn/iocoder/springcloud/lab60/dto/UserCreateDTO.java create mode 100644 lab-60/lab-60-soul-spring-cloud-demo/src/main/resources/application.yaml diff --git a/lab-60/lab-60-soul-spring-cloud-demo/pom.xml b/lab-60/lab-60-soul-spring-cloud-demo/pom.xml new file mode 100644 index 00000000..381161c6 --- /dev/null +++ b/lab-60/lab-60-soul-spring-cloud-demo/pom.xml @@ -0,0 +1,73 @@ + + + + lab-60 + cn.iocoder.springboot.labs + 1.0-SNAPSHOT + + 4.0.0 + + lab-60-soul-spring-cloud-demo + + + 1.8 + 1.8 + 2.2.4.RELEASE + Hoxton.SR1 + 2.2.0.RELEASE + + + + + + + org.springframework.boot + spring-boot-starter-parent + ${spring.boot.version} + pom + import + + + org.springframework.cloud + spring-cloud-dependencies + ${spring.cloud.version} + pom + import + + + com.alibaba.cloud + spring-cloud-alibaba-dependencies + ${spring.cloud.alibaba.version} + pom + import + + + + + + + + org.springframework.boot + spring-boot-starter-web + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + org.dromara + soul-client-springcloud + 2.1.2-RELEASE + + + + diff --git a/lab-60/lab-60-soul-spring-cloud-demo/src/main/java/cn/iocoder/springcloud/lab60/DemoApplication.java b/lab-60/lab-60-soul-spring-cloud-demo/src/main/java/cn/iocoder/springcloud/lab60/DemoApplication.java new file mode 100644 index 00000000..6f4e8a3c --- /dev/null +++ b/lab-60/lab-60-soul-spring-cloud-demo/src/main/java/cn/iocoder/springcloud/lab60/DemoApplication.java @@ -0,0 +1,13 @@ +package cn.iocoder.springcloud.lab60; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class DemoApplication { + + public static void main(String[] args) { + SpringApplication.run(DemoApplication.class, args); + } + +} diff --git a/lab-60/lab-60-soul-spring-cloud-demo/src/main/java/cn/iocoder/springcloud/lab60/controller/UserController.java b/lab-60/lab-60-soul-spring-cloud-demo/src/main/java/cn/iocoder/springcloud/lab60/controller/UserController.java new file mode 100644 index 00000000..edb1623c --- /dev/null +++ b/lab-60/lab-60-soul-spring-cloud-demo/src/main/java/cn/iocoder/springcloud/lab60/controller/UserController.java @@ -0,0 +1,28 @@ +package cn.iocoder.springcloud.lab60.controller; + +import cn.iocoder.springcloud.lab60.dto.UserCreateDTO; +import org.dromara.soul.client.common.annotation.SoulClient; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/user") +public class UserController { + + private Logger logger = LoggerFactory.getLogger(getClass()); + + @GetMapping("/get") + @SoulClient(path = "/user/get", desc = "获得用户详细") + public String getUser(@RequestParam("id") Integer id) { + return "DEMO:" + id; + } + + @PostMapping("/create") + @SoulClient(path = "/user/create", desc = "创建用户") + public Integer createUser(@RequestBody UserCreateDTO createDTO) { + logger.info("[createUser][username({}) password({})]", createDTO.getNickname(), createDTO.getGender()); + return 1; + } + +} diff --git a/lab-60/lab-60-soul-spring-cloud-demo/src/main/java/cn/iocoder/springcloud/lab60/dto/UserCreateDTO.java b/lab-60/lab-60-soul-spring-cloud-demo/src/main/java/cn/iocoder/springcloud/lab60/dto/UserCreateDTO.java new file mode 100644 index 00000000..99bff222 --- /dev/null +++ b/lab-60/lab-60-soul-spring-cloud-demo/src/main/java/cn/iocoder/springcloud/lab60/dto/UserCreateDTO.java @@ -0,0 +1,34 @@ +package cn.iocoder.springcloud.lab60.dto; + +/** + * 用户创建 DTO + */ +public class UserCreateDTO { + + /** + * 昵称 + */ + private String nickname; + /** + * 性别 + */ + private Integer gender; + + public String getNickname() { + return nickname; + } + + public UserCreateDTO setNickname(String nickname) { + this.nickname = nickname; + return this; + } + + public Integer getGender() { + return gender; + } + + public UserCreateDTO setGender(Integer gender) { + this.gender = gender; + return this; + } +} diff --git a/lab-60/lab-60-soul-spring-cloud-demo/src/main/resources/application.yaml b/lab-60/lab-60-soul-spring-cloud-demo/src/main/resources/application.yaml new file mode 100644 index 00000000..9b694186 --- /dev/null +++ b/lab-60/lab-60-soul-spring-cloud-demo/src/main/resources/application.yaml @@ -0,0 +1,16 @@ +spring: + application: + name: sc-user-service # Spring 应用名 + cloud: + nacos: + # Nacos 作为注册中心的配置项,对应 NacosDiscoveryProperties 配置类 + discovery: + server-addr: 127.0.0.1:8848 # Nacos 服务器地址 + +soul: + # Soul 针对 SpringMVC 的配置项,对应 SoulSpringCloudConfig 配置类 + springcloud: + admin-url: http://127.0.0.1:9095 # Soul Admin 地址 + context-path: /sc-user-service-api # 设置在 Soul 网关的路由前缀,例如说 /order、/product 等等。 + # 后续,网关会根据该 context-path 来进行路由 + app-name: sc-user-service # 应用名。未配置情况下,默认使用 `spring.application.name` 配置项 diff --git a/lab-60/pom.xml b/lab-60/pom.xml index 11a7490f..f7e81598 100644 --- a/lab-60/pom.xml +++ b/lab-60/pom.xml @@ -15,6 +15,7 @@ lab-60-soul-dubbo-demo lab-60-soul-spring-boot-demo + lab-60-soul-spring-cloud-demo