From bc9749107ff172801eebf24bd22331506ad04810 Mon Sep 17 00:00:00 2001
From: YunaiV <>
Date: Tue, 25 Feb 2020 20:00:20 +0800
Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20spring=20cloud=20gateway?=
=?UTF-8?q?=20=E7=BD=91=E5=85=B3=E7=9A=84=E7=A4=BA=E4=BE=8B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 4 +-
.../pom.xml | 64 +++++++++++++++++++
.../gatewaydemo/GatewayApplication.java | 13 ++++
.../src/main/resources/application.yaml | 31 +++++++++
labx-08/labx-08-sc-user-service/pom.xml | 64 +++++++++++++++++++
.../userservice/UserServiceApplication.java | 13 ++++
.../controller/UserController.java | 23 +++++++
.../labx08/userservice/dto/UserAddDTO.java | 37 +++++++++++
.../labx08/userservice/dto/UserDTO.java | 49 ++++++++++++++
.../src/main/resources/application.yaml | 12 ++++
labx-08/pom.xml | 3 +
11 files changed, 311 insertions(+), 2 deletions(-)
create mode 100644 labx-08/labx-08-sc-gateway-demo02-registry/pom.xml
create mode 100644 labx-08/labx-08-sc-gateway-demo02-registry/src/main/java/cn/iocoder/springcloud/labx08/gatewaydemo/GatewayApplication.java
create mode 100644 labx-08/labx-08-sc-gateway-demo02-registry/src/main/resources/application.yaml
create mode 100644 labx-08/labx-08-sc-user-service/pom.xml
create mode 100644 labx-08/labx-08-sc-user-service/src/main/java/cn/iocoder/springcloud/labx08/userservice/UserServiceApplication.java
create mode 100644 labx-08/labx-08-sc-user-service/src/main/java/cn/iocoder/springcloud/labx08/userservice/controller/UserController.java
create mode 100644 labx-08/labx-08-sc-user-service/src/main/java/cn/iocoder/springcloud/labx08/userservice/dto/UserAddDTO.java
create mode 100644 labx-08/labx-08-sc-user-service/src/main/java/cn/iocoder/springcloud/labx08/userservice/dto/UserDTO.java
create mode 100644 labx-08/labx-08-sc-user-service/src/main/resources/application.yaml
diff --git a/README.md b/README.md
index 1f6f11c8..ced5a94a 100644
--- a/README.md
+++ b/README.md
@@ -4,11 +4,11 @@
* [《Spring Cloud 专栏》](https://github.com/YunaiV/SpringBoot-Labs#spring-cloud-%E4%B8%93%E6%A0%8F)
* [《Dubbo 专栏》](https://github.com/YunaiV/SpringBoot-Labs#Dubbo-%E4%B8%93%E6%A0%8F)
-作为一个热爱**深夜**撸码的 18 岁秃头的可爱小男孩,希望大佬能够**一间三连**。
+作为一个热爱**深夜**撸码的 18 岁秃头的可爱小男孩,希望大佬能够**一键三连**。

-~~交流~~**装逼群**,请点击[传送门](http://www.iocoder.cn/mall-user-group/?vip&gitee),进行引导加入。**亲,一间三连啊**
+> ~~交流~~**装逼群**,请点击[传送门](http://www.iocoder.cn/mall-user-group/?vip&gitee),进行引导加入。**亲,一键三连啊**
# Spring Boot 专栏
diff --git a/labx-08/labx-08-sc-gateway-demo02-registry/pom.xml b/labx-08/labx-08-sc-gateway-demo02-registry/pom.xml
new file mode 100644
index 00000000..7ae7c813
--- /dev/null
+++ b/labx-08/labx-08-sc-gateway-demo02-registry/pom.xml
@@ -0,0 +1,64 @@
+
+
+
+ labx-08
+ cn.iocoder.springboot.labs
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+ labx-08-sc-gateway-demo02-registry
+
+
+ 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.cloud
+ spring-cloud-starter-gateway
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
+
+
+
diff --git a/labx-08/labx-08-sc-gateway-demo02-registry/src/main/java/cn/iocoder/springcloud/labx08/gatewaydemo/GatewayApplication.java b/labx-08/labx-08-sc-gateway-demo02-registry/src/main/java/cn/iocoder/springcloud/labx08/gatewaydemo/GatewayApplication.java
new file mode 100644
index 00000000..f9575ef3
--- /dev/null
+++ b/labx-08/labx-08-sc-gateway-demo02-registry/src/main/java/cn/iocoder/springcloud/labx08/gatewaydemo/GatewayApplication.java
@@ -0,0 +1,13 @@
+package cn.iocoder.springcloud.labx08.gatewaydemo;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class GatewayApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(GatewayApplication.class, args);
+ }
+
+}
diff --git a/labx-08/labx-08-sc-gateway-demo02-registry/src/main/resources/application.yaml b/labx-08/labx-08-sc-gateway-demo02-registry/src/main/resources/application.yaml
new file mode 100644
index 00000000..1e130765
--- /dev/null
+++ b/labx-08/labx-08-sc-gateway-demo02-registry/src/main/resources/application.yaml
@@ -0,0 +1,31 @@
+server:
+ port: 8888
+
+spring:
+ cloud:
+ # Spring Cloud Gateway 配置项,对应 GatewayProperties 类
+ gateway:
+ # 路由配置项,对应 RouteDefinition 数组
+ routes:
+ - id: yudaoyuanma # 路由的编号
+ uri: http://www.iocoder.cn # 路由到的目标地址
+ predicates: # 断言,作为路由的匹配条件,对应 RouteDefinition 数组
+ - Path=/blog
+ filters:
+ - StripPrefix=1
+ - id: oschina # 路由的编号
+ uri: https://www.oschina.net # 路由的目标地址
+ predicates: # 断言,作为路由的匹配条件,对应 RouteDefinition 数组
+ - Path=/oschina
+ filters: # 过滤器,对请求进行拦截,实现自定义的功能,对应 FilterDefinition 数组
+ - StripPrefix=1
+ # 与 Spring Cloud 注册中心的集成,对应 DiscoveryLocatorProperties 类
+ discovery:
+ locator:
+ enabled: true # 是否开启,默认为 false 关闭
+ url-expression: "'lb://' + serviceId" # 路由的目标地址的表达式,默认为 "'lb://' + serviceId"
+
+ # Nacos 作为注册中心的配置项
+ nacos:
+ discovery:
+ server-addr: 127.0.0.1:8848 # Nacos 服务器地址
diff --git a/labx-08/labx-08-sc-user-service/pom.xml b/labx-08/labx-08-sc-user-service/pom.xml
new file mode 100644
index 00000000..3ed72cce
--- /dev/null
+++ b/labx-08/labx-08-sc-user-service/pom.xml
@@ -0,0 +1,64 @@
+
+
+
+ labx-08
+ cn.iocoder.springboot.labs
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+ labx-08-sc-user-service
+
+
+ 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
+
+
+
+
diff --git a/labx-08/labx-08-sc-user-service/src/main/java/cn/iocoder/springcloud/labx08/userservice/UserServiceApplication.java b/labx-08/labx-08-sc-user-service/src/main/java/cn/iocoder/springcloud/labx08/userservice/UserServiceApplication.java
new file mode 100644
index 00000000..94da95e8
--- /dev/null
+++ b/labx-08/labx-08-sc-user-service/src/main/java/cn/iocoder/springcloud/labx08/userservice/UserServiceApplication.java
@@ -0,0 +1,13 @@
+package cn.iocoder.springcloud.labx08.userservice;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class UserServiceApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(UserServiceApplication.class, args);
+ }
+
+}
diff --git a/labx-08/labx-08-sc-user-service/src/main/java/cn/iocoder/springcloud/labx08/userservice/controller/UserController.java b/labx-08/labx-08-sc-user-service/src/main/java/cn/iocoder/springcloud/labx08/userservice/controller/UserController.java
new file mode 100644
index 00000000..e576e559
--- /dev/null
+++ b/labx-08/labx-08-sc-user-service/src/main/java/cn/iocoder/springcloud/labx08/userservice/controller/UserController.java
@@ -0,0 +1,23 @@
+package cn.iocoder.springcloud.labx08.userservice.controller;
+
+import cn.iocoder.springcloud.labx08.userservice.dto.UserAddDTO;
+import cn.iocoder.springcloud.labx08.userservice.dto.UserDTO;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/user")
+public class UserController {
+
+ @GetMapping("/get")
+ public UserDTO get(@RequestParam("id") Integer id) {
+ return new UserDTO().setId(id)
+ .setName("没有昵称:" + id)
+ .setGender(id % 2 + 1); // 1 - 男;2 - 女
+ }
+
+ @PostMapping("/add")
+ public Integer add(UserAddDTO addDTO) {
+ return (int) (System.currentTimeMillis() / 1000); // 嘿嘿,随便返回一个 id
+ }
+
+}
diff --git a/labx-08/labx-08-sc-user-service/src/main/java/cn/iocoder/springcloud/labx08/userservice/dto/UserAddDTO.java b/labx-08/labx-08-sc-user-service/src/main/java/cn/iocoder/springcloud/labx08/userservice/dto/UserAddDTO.java
new file mode 100644
index 00000000..2dbfedce
--- /dev/null
+++ b/labx-08/labx-08-sc-user-service/src/main/java/cn/iocoder/springcloud/labx08/userservice/dto/UserAddDTO.java
@@ -0,0 +1,37 @@
+package cn.iocoder.springcloud.labx08.userservice.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/labx-08/labx-08-sc-user-service/src/main/java/cn/iocoder/springcloud/labx08/userservice/dto/UserDTO.java b/labx-08/labx-08-sc-user-service/src/main/java/cn/iocoder/springcloud/labx08/userservice/dto/UserDTO.java
new file mode 100644
index 00000000..8c911e70
--- /dev/null
+++ b/labx-08/labx-08-sc-user-service/src/main/java/cn/iocoder/springcloud/labx08/userservice/dto/UserDTO.java
@@ -0,0 +1,49 @@
+package cn.iocoder.springcloud.labx08.userservice.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/labx-08/labx-08-sc-user-service/src/main/resources/application.yaml b/labx-08/labx-08-sc-user-service/src/main/resources/application.yaml
new file mode 100644
index 00000000..e9b70d31
--- /dev/null
+++ b/labx-08/labx-08-sc-user-service/src/main/resources/application.yaml
@@ -0,0 +1,12 @@
+spring:
+ application:
+ name: user-service # Spring 应用名
+ cloud:
+ nacos:
+ # Nacos 作为注册中心的配置项
+ discovery:
+ server-addr: 127.0.0.1:8848 # Nacos 服务器地址 "'lb://'+serviceId"
+
+server:
+ port: ${random.int[10000,19999]} # 服务器端口。默认为 8080
+# port: 18080 # 服务器端口。默认为 8080
diff --git a/labx-08/pom.xml b/labx-08/pom.xml
index d12e861e..4c0a8f0b 100644
--- a/labx-08/pom.xml
+++ b/labx-08/pom.xml
@@ -13,6 +13,9 @@
pom
labx-08-sc-gateway-demo01
+ labx-08-sc-gateway-demo02-registry
+
+ labx-08-sc-user-service