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://static.iocoder.cn/github-star.jpg) -~~交流~~**装逼群**,请点击[传送门](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