Quellcode durchsuchen

feat:后置时间断言工厂,通过配置类配置

yang yi vor 1 Jahr
Ursprung
Commit
c61dcda8ba

+ 11 - 3
member-service-consumer/src/main/java/anyi/space/memberConsumer/config/GatewayConfig.java

@@ -6,6 +6,11 @@ import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.http.HttpMethod;
 
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.ZonedDateTime;
+import java.time.format.DateTimeFormatter;
+
 /**
  * @ProjectName: distributedSystemLearn
  * @FileName: GatewayConfig
@@ -13,31 +18,34 @@ import org.springframework.http.HttpMethod;
  * @Data:2025/9/10 16:33
  * @Description: gateway配置类
  */
-//@Configuration
+@Configuration
 public class GatewayConfig {
     @Bean
     public RouteLocator myRouteLocator01(RouteLocatorBuilder builder){
         //根据配置文件改写为配置类的形式
         RouteLocatorBuilder.Builder routes = builder.routes();
         routes.route("member10001",r-> {
+            ZonedDateTime zonedDateTime = ZonedDateTime.of(2025, 9, 10, 0, 0, 0, 0, ZoneId.systemDefault());
             return r
                     //路径断言
                     .path("/member-gateway/member")
                     .and()
                     //请求方法断言
                     .method(HttpMethod.GET)
+                    .and()
+                    .after(zonedDateTime)
                     //过滤器重写路径
                     .filters(fn ->{
                         //路径重写
                         return fn.rewritePath("/member-gateway/(?<segment>.*)","/member-provider/$\\{segment}");
                     })
                     //转发目标地址
-                    .uri("http://localhost:10001");
+                    .uri("lb://member-service-provider");
 
         });
         return routes.build();
     }
-    @Bean
+    //@Bean
     public RouteLocator myRouteLocator02(RouteLocatorBuilder builder){
         RouteLocatorBuilder.Builder routes = builder.routes();
         routes.route("member10002",r->{

+ 16 - 16
member-service-consumer/src/main/resources/application.yaml

@@ -14,22 +14,22 @@ spring:
       #配置路由,可以配置多组
       routes:
         #配置路由的id,需要全局唯一,查询数据使用该路由
-        - id: member10001
-          #路由转发的URI,最终转发的URL = URI + PATH
-          #uri: http://localhost:10001
-          #使用负载均衡
-          uri: lb://member-service-provider
-          #配置路由的断言,满足条件时才进行路由
-          predicates:
-            #路径断言
-            - Path=/member-gateway/member
-            #方法断言
-            - Method=GET
-            #后置时间断言,时间格式为ZonedDateTime
-            - After=2025-09-10T19:01:03.749+08:00[Asia/Shanghai]
-          filters:
-            #重写路径,将请求路径中的member-gateway替换为member-provider,使用到正则表达式的命名捕获分组,语法格式:(?<捕获分组名称>pattern),引用捕获分组:$\{捕获分组名称}
-            - RewritePath=/member-gateway/(?<segment>.*), /member-provider/$\{segment}
+#        - id: member10001
+#          #路由转发的URI,最终转发的URL = URI + PATH
+#          #uri: http://localhost:10001
+#          #使用负载均衡
+#          uri: lb://member-service-provider
+#          #配置路由的断言,满足条件时才进行路由
+#          predicates:
+#            #路径断言
+#            - Path=/member-gateway/member
+#            #方法断言
+#            - Method=GET
+#            #后置时间断言,时间格式为ZonedDateTime
+#            #- After=2025-09-10T19:01:03.749+08:00[Asia/Shanghai]
+#          filters:
+#            #重写路径,将请求路径中的member-gateway替换为member-provider,使用到正则表达式的命名捕获分组,语法格式:(?<捕获分组名称>pattern),引用捕获分组:$\{捕获分组名称}
+#            - RewritePath=/member-gateway/(?<segment>.*), /member-provider/$\{segment}
         #第二组路由,新增数据使用该路由
         - id: member10002
           uri: http://localhost:10002