From 1f2ab33ba3e22fb8c16b30c1b6d7c4c49a59f2d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=A6=82?= <8775@163.com> Date: Tue, 4 Mar 2025 22:27:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8B=A6=E6=88=AA=E5=99=A8=E6=96=B0=E5=A2=9Ein?= =?UTF-8?q?it=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- changelog.md | 1 + .../sop/gateway/interceptor/RouteInterceptor.java | 12 ++++++++++++ .../sop/gateway/service/impl/RouteServiceImpl.java | 11 +++++++++++ 3 files changed, 24 insertions(+) diff --git a/changelog.md b/changelog.md index 98e3ad25..3b447c7f 100755 --- a/changelog.md +++ b/changelog.md @@ -2,6 +2,7 @@ ## 日常更新 +- 2025-03-04:拦截器新增init方法,用来做一些初始化工作 - 2025-02-27:新增token校验,com.gitee.sop.gateway.interceptor.internal.TokenValidateInterceptor.checkToken - 2025-02-20:修复Linux环境下启动报错,加载i18n问题;优化新增接口注册保存逻辑 - 2025-02-19:升级fastmybatis到3.0.16 diff --git a/sop-gateway/src/main/java/com/gitee/sop/gateway/interceptor/RouteInterceptor.java b/sop-gateway/src/main/java/com/gitee/sop/gateway/interceptor/RouteInterceptor.java index 4f986da1..ffe49d34 100755 --- a/sop-gateway/src/main/java/com/gitee/sop/gateway/interceptor/RouteInterceptor.java +++ b/sop-gateway/src/main/java/com/gitee/sop/gateway/interceptor/RouteInterceptor.java @@ -2,6 +2,8 @@ package com.gitee.sop.gateway.interceptor; import com.gitee.sop.gateway.common.ApiInfoDTO; import com.gitee.sop.gateway.request.ApiRequestContext; +import org.springframework.context.ApplicationContext; +import org.springframework.core.env.Environment; /** * 路由拦截器 @@ -10,6 +12,16 @@ import com.gitee.sop.gateway.request.ApiRequestContext; */ public interface RouteInterceptor { + /** + * 初始化,spring容器启动后执行。 + * + * @param applicationContext spring上下文 + * @param environment spring环境变量 + */ + default void init(ApplicationContext applicationContext, Environment environment) { + + } + /** * 在路由转发前执行,签名校验通过后会立即执行此方法 *
diff --git a/sop-gateway/src/main/java/com/gitee/sop/gateway/service/impl/RouteServiceImpl.java b/sop-gateway/src/main/java/com/gitee/sop/gateway/service/impl/RouteServiceImpl.java index fcc1e2e3..d3943eb0 100755 --- a/sop-gateway/src/main/java/com/gitee/sop/gateway/service/impl/RouteServiceImpl.java +++ b/sop-gateway/src/main/java/com/gitee/sop/gateway/service/impl/RouteServiceImpl.java @@ -30,6 +30,8 @@ import org.apache.dubbo.common.utils.ClassUtils; import org.apache.dubbo.rpc.RpcContext; import org.apache.dubbo.rpc.RpcContextAttachment; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; +import org.springframework.core.env.Environment; import org.springframework.stereotype.Service; import org.springframework.util.ObjectUtils; import org.springframework.util.StringUtils; @@ -73,6 +75,11 @@ public class RouteServiceImpl implements RouteService { @Autowired private Serde serde; + @Autowired + private ApplicationContext applicationContext; + @Autowired + private Environment environment; + @Override public Response route(ApiRequestContext apiRequestContext) { ApiRequest apiRequest = apiRequestContext.getApiRequest(); @@ -259,6 +266,10 @@ public class RouteServiceImpl implements RouteService { routeInterceptors = new ArrayList<>(); } routeInterceptors.sort(Comparator.comparing(RouteInterceptor::getOrder)); + + for (RouteInterceptor routeInterceptor : routeInterceptors) { + routeInterceptor.init(applicationContext, environment); + } } }