commit 0c3157639a3f52b1d9294de8469e4a387199423b Author: WenG <450292408@qq.com> Date: Tue Apr 13 13:51:05 2021 +0800 fc 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() { + } + +}