From f7ed2bbfb017667253ec50341a753b89d65562bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E7=86=8A?= <50282105+xtanyu@users.noreply.github.com> Date: Wed, 25 Dec 2024 17:23:37 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E6=9B=B4=E6=96=B0=E7=A7=9F=E6=88=B7?= =?UTF-8?q?=E5=BF=BD=E7=95=A5=E6=B3=A8=E8=A7=A3=20(#9)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{TenantDataSourceIgnore.java => TenantIgnore.java} | 2 +- .../tenant/autoconfigure/TenantInterceptor.java | 9 +++++++++ .../handler/datasource/TenantDataSourceAdvisor.java | 2 +- 3 files changed, 11 insertions(+), 2 deletions(-) rename continew-starter-extension/continew-starter-extension-tenant/continew-starter-extension-tenant-core/src/main/java/top/continew/starter/extension/tenant/annotation/{TenantDataSourceIgnore.java => TenantIgnore.java} (95%) diff --git a/continew-starter-extension/continew-starter-extension-tenant/continew-starter-extension-tenant-core/src/main/java/top/continew/starter/extension/tenant/annotation/TenantDataSourceIgnore.java b/continew-starter-extension/continew-starter-extension-tenant/continew-starter-extension-tenant-core/src/main/java/top/continew/starter/extension/tenant/annotation/TenantIgnore.java similarity index 95% rename from continew-starter-extension/continew-starter-extension-tenant/continew-starter-extension-tenant-core/src/main/java/top/continew/starter/extension/tenant/annotation/TenantDataSourceIgnore.java rename to continew-starter-extension/continew-starter-extension-tenant/continew-starter-extension-tenant-core/src/main/java/top/continew/starter/extension/tenant/annotation/TenantIgnore.java index ddc61642..93c9db05 100644 --- a/continew-starter-extension/continew-starter-extension-tenant/continew-starter-extension-tenant-core/src/main/java/top/continew/starter/extension/tenant/annotation/TenantDataSourceIgnore.java +++ b/continew-starter-extension/continew-starter-extension-tenant/continew-starter-extension-tenant-core/src/main/java/top/continew/starter/extension/tenant/annotation/TenantIgnore.java @@ -27,5 +27,5 @@ import java.lang.annotation.*; @Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented -public @interface TenantDataSourceIgnore { +public @interface TenantIgnore { } diff --git a/continew-starter-extension/continew-starter-extension-tenant/continew-starter-extension-tenant-core/src/main/java/top/continew/starter/extension/tenant/autoconfigure/TenantInterceptor.java b/continew-starter-extension/continew-starter-extension-tenant/continew-starter-extension-tenant-core/src/main/java/top/continew/starter/extension/tenant/autoconfigure/TenantInterceptor.java index c0e85aab..2068f0fc 100644 --- a/continew-starter-extension/continew-starter-extension-tenant/continew-starter-extension-tenant-core/src/main/java/top/continew/starter/extension/tenant/autoconfigure/TenantInterceptor.java +++ b/continew-starter-extension/continew-starter-extension-tenant/continew-starter-extension-tenant-core/src/main/java/top/continew/starter/extension/tenant/autoconfigure/TenantInterceptor.java @@ -19,7 +19,9 @@ package top.continew.starter.extension.tenant.autoconfigure; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import org.springframework.core.Ordered; +import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.HandlerInterceptor; +import top.continew.starter.extension.tenant.annotation.TenantIgnore; import top.continew.starter.extension.tenant.config.TenantProvider; import top.continew.starter.extension.tenant.context.TenantContextHolder; @@ -41,6 +43,13 @@ public class TenantInterceptor implements HandlerInterceptor, Ordered { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) { + if (handler instanceof HandlerMethod) { + HandlerMethod handlerMethod = (HandlerMethod)handler; + TenantIgnore customAnnotation = handlerMethod.getMethodAnnotation(TenantIgnore.class); + if (customAnnotation != null) { + return true; + } + } String tenantId = request.getHeader(tenantProperties.getTenantIdHeader()); TenantContextHolder.setContext(tenantProvider.getByTenantId(tenantId, true)); return true; diff --git a/continew-starter-extension/continew-starter-extension-tenant/continew-starter-extension-tenant-mp/src/main/java/top/continew/starter/extension/tenant/handler/datasource/TenantDataSourceAdvisor.java b/continew-starter-extension/continew-starter-extension-tenant/continew-starter-extension-tenant-mp/src/main/java/top/continew/starter/extension/tenant/handler/datasource/TenantDataSourceAdvisor.java index 57f3c7cd..88b530a3 100644 --- a/continew-starter-extension/continew-starter-extension-tenant/continew-starter-extension-tenant-mp/src/main/java/top/continew/starter/extension/tenant/handler/datasource/TenantDataSourceAdvisor.java +++ b/continew-starter-extension/continew-starter-extension-tenant/continew-starter-extension-tenant-mp/src/main/java/top/continew/starter/extension/tenant/handler/datasource/TenantDataSourceAdvisor.java @@ -67,7 +67,7 @@ public class TenantDataSourceAdvisor extends AbstractPointcutAdvisor implements AspectJExpressionPointcut cut = new AspectJExpressionPointcut(); cut.setExpression(""" execution(* *..controller..*(..)) - && !@annotation(top.continew.starter.extension.tenant.annotation.TenantDataSourceIgnore) + && !@annotation(top.continew.starter.extension.tenant.annotation.TenantIgnore) """); return new ComposablePointcut((Pointcut)cut); }