From 0c3157639a3f52b1d9294de8469e4a387199423b Mon Sep 17 00:00:00 2001
From: WenG <450292408@qq.com>
Date: Tue, 13 Apr 2021 13:51:05 +0800
Subject: [PATCH] fc
---
.gitignore | 36 ++++++++++++
pom.xml | 57 +++++++++++++++++++
.../wgink/gateway/WgGatewayApplication.java | 31 ++++++++++
.../filter/global/CountGlobalFilter.java | 34 +++++++++++
src/main/resources/application.yml | 6 ++
.../gateway/WgGatewayApplicationTests.java | 13 +++++
6 files changed, 177 insertions(+)
create mode 100644 .gitignore
create mode 100644 pom.xml
create mode 100644 src/main/java/ink/wgink/gateway/WgGatewayApplication.java
create mode 100644 src/main/java/ink/wgink/gateway/filter/global/CountGlobalFilter.java
create mode 100644 src/main/resources/application.yml
create mode 100644 src/test/java/ink/wgink/gateway/WgGatewayApplicationTests.java
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..de3653d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,36 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+.mvn
+mvnw
+mvnw.cmd
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..f7bd389
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,57 @@
+
+
+ 4.0.0
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.4.2
+
+
+ ink.wgink
+ gateway
+ 1.0.0-SNAPSHOT
+ wg-gateway
+ 网关
+
+ 1.8
+ 2020.0.2
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-circuitbreaker-resilience4j
+
+
+ org.springframework.cloud
+ spring-cloud-starter-gateway
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-dependencies
+ ${spring-cloud.version}
+ pom
+ import
+
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+
+
diff --git a/src/main/java/ink/wgink/gateway/WgGatewayApplication.java b/src/main/java/ink/wgink/gateway/WgGatewayApplication.java
new file mode 100644
index 0000000..78227dc
--- /dev/null
+++ b/src/main/java/ink/wgink/gateway/WgGatewayApplication.java
@@ -0,0 +1,31 @@
+package ink.wgink.gateway;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.cloud.gateway.route.RouteLocator;
+import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;
+import org.springframework.context.annotation.Bean;
+
+@EnableConfigurationProperties
+@SpringBootApplication
+public class WgGatewayApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(WgGatewayApplication.class, args);
+ }
+
+ @Bean
+ public RouteLocator routes(RouteLocatorBuilder builder) {
+ RouteLocator routeLocator = builder.routes()
+ .route(r -> r
+ .path("/study")
+ .filters(f -> f.addRequestHeader("name", "张三").addRequestParameter("test", "gogo"))
+ .uri("http://127.0.0.1:7008/study"))
+ .build();
+ routeLocator.getRoutes().toStream().forEach(System.out::println);
+ return routeLocator;
+ }
+
+
+}
\ No newline at end of file
diff --git a/src/main/java/ink/wgink/gateway/filter/global/CountGlobalFilter.java b/src/main/java/ink/wgink/gateway/filter/global/CountGlobalFilter.java
new file mode 100644
index 0000000..d923da7
--- /dev/null
+++ b/src/main/java/ink/wgink/gateway/filter/global/CountGlobalFilter.java
@@ -0,0 +1,34 @@
+package ink.wgink.gateway.filter.global;
+
+import org.springframework.cloud.gateway.filter.GatewayFilterChain;
+import org.springframework.cloud.gateway.filter.GlobalFilter;
+import org.springframework.core.Ordered;
+import org.springframework.stereotype.Component;
+import org.springframework.web.server.ServerWebExchange;
+import reactor.core.publisher.Mono;
+
+/**
+ * When you feel like quitting. Think about why you started
+ * 当你想要放弃的时候,想想当初你为何开始
+ *
+ * @ClassName: CountGolbalFilter
+ * @Description: 计数过滤器
+ * @Author: WangGeng
+ * @Date: 2021/4/13 12:10
+ * @Version: 1.0
+ **/
+@Component
+public class CountGlobalFilter implements GlobalFilter, Ordered {
+
+ @Override
+ public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) {
+ System.out.println("count filter");
+ return chain.filter(exchange);
+// return exchange.getResponse().setComplete();
+ }
+
+ @Override
+ public int getOrder() {
+ return 10000;
+ }
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
new file mode 100644
index 0000000..c09c7c8
--- /dev/null
+++ b/src/main/resources/application.yml
@@ -0,0 +1,6 @@
+server:
+ port: 9999
+spring:
+ cloud:
+ gateway:
+ enabled: true
diff --git a/src/test/java/ink/wgink/gateway/WgGatewayApplicationTests.java b/src/test/java/ink/wgink/gateway/WgGatewayApplicationTests.java
new file mode 100644
index 0000000..bb6a4c1
--- /dev/null
+++ b/src/test/java/ink/wgink/gateway/WgGatewayApplicationTests.java
@@ -0,0 +1,13 @@
+package ink.wgink.gateway;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.boot.test.context.SpringBootTest;
+
+@SpringBootTest
+class WgGatewayApplicationTests {
+
+ @Test
+ void contextLoads() {
+ }
+
+}