From 278825d12d998e36c83e99bc5b50f561e38b06a1 Mon Sep 17 00:00:00 2001 From: noear Date: Mon, 16 Jan 2023 15:50:31 +0800 Subject: [PATCH 1/2] =?UTF-8?q?update:=20=E5=85=A8=E5=B1=80=E7=BF=BB?= =?UTF-8?q?=E8=AF=91=E6=94=B9=E4=B8=BA=20RouterInterceptor=20=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- easy-trans-anno-solon/pom.xml | 7 ++-- easy-trans-service-solon/pom.xml | 9 +++--- .../interceptor/GlobalRouterInterceptor.java | 32 +++++++++++++++++++ .../trans/interceptor/TransInterceptor.java | 13 +++----- easy-trans-solon-plugin/pom.xml | 9 ++++-- .../com/fhs/trans/config/EasyTransPlugin.java | 12 +++---- pom.xml | 18 ++++++++--- 8 files changed, 72 insertions(+), 30 deletions(-) create mode 100644 easy-trans-service-solon/src/main/java/com/fhs/trans/interceptor/GlobalRouterInterceptor.java diff --git a/README.md b/README.md index c20e360..c537270 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ com.fhs-opensource easy-trans-solon-plugin - 1.1.2 + 1.1.3-M1 ``` diff --git a/easy-trans-anno-solon/pom.xml b/easy-trans-anno-solon/pom.xml index 5706c7d..5a606fe 100644 --- a/easy-trans-anno-solon/pom.xml +++ b/easy-trans-anno-solon/pom.xml @@ -2,14 +2,17 @@ + 4.0.0 + com.fhs-opensource easy-trans-solon - 1.1.2 + 1.1.3-M1 ../pom.xml - 4.0.0 + easy-trans-anno-solon + com.baomidou diff --git a/easy-trans-service-solon/pom.xml b/easy-trans-service-solon/pom.xml index bc7297e..355448b 100644 --- a/easy-trans-service-solon/pom.xml +++ b/easy-trans-service-solon/pom.xml @@ -2,16 +2,17 @@ + 4.0.0 + com.fhs-opensource easy-trans-solon - 1.1.2 + 1.1.3-M1 ../pom.xml - 1.1.2 - 4.0.0 - com.fhs-opensource + easy-trans-service-solon + net.bytebuddy diff --git a/easy-trans-service-solon/src/main/java/com/fhs/trans/interceptor/GlobalRouterInterceptor.java b/easy-trans-service-solon/src/main/java/com/fhs/trans/interceptor/GlobalRouterInterceptor.java new file mode 100644 index 0000000..0eb0c08 --- /dev/null +++ b/easy-trans-service-solon/src/main/java/com/fhs/trans/interceptor/GlobalRouterInterceptor.java @@ -0,0 +1,32 @@ +package com.fhs.trans.interceptor; + +import com.fhs.trans.service.impl.TransService; +import org.noear.solon.annotation.Component; +import org.noear.solon.annotation.Inject; +import org.noear.solon.core.handle.Context; +import org.noear.solon.core.handle.Handler; +import org.noear.solon.core.route.RouterInterceptor; +import org.noear.solon.core.route.RouterInterceptorChain; + +/** + * 全局路由拦截器 + * + * @author noear + */ +@Component +public class GlobalRouterInterceptor implements RouterInterceptor { + @Inject + private TransService transService; + + @Override + public void doIntercept(Context ctx, Handler mainHandler, RouterInterceptorChain chain) throws Throwable { + chain.doIntercept(ctx, mainHandler); + } + + @Override + public Object postResult(Context ctx, Object result) throws Throwable { + //此处为拦截处理 + result = transService.transOneLoop(result, true); + return result; + } +} diff --git a/easy-trans-service-solon/src/main/java/com/fhs/trans/interceptor/TransInterceptor.java b/easy-trans-service-solon/src/main/java/com/fhs/trans/interceptor/TransInterceptor.java index db3613f..ef95558 100644 --- a/easy-trans-service-solon/src/main/java/com/fhs/trans/interceptor/TransInterceptor.java +++ b/easy-trans-service-solon/src/main/java/com/fhs/trans/interceptor/TransInterceptor.java @@ -1,7 +1,8 @@ package com.fhs.trans.interceptor; import com.fhs.trans.service.impl.TransService; -import org.noear.solon.Solon; +import org.noear.solon.annotation.Component; +import org.noear.solon.annotation.Inject; import org.noear.solon.core.aspect.Interceptor; import org.noear.solon.core.aspect.Invocation; @@ -9,23 +10,17 @@ import org.noear.solon.core.aspect.Invocation; * 翻译拦截器 * */ +@Component public class TransInterceptor implements Interceptor { + @Inject private TransService transService; - @Override public Object doIntercept(Invocation inv) throws Throwable { - init(); //此处为拦截处理 Object rst = inv.invoke(); rst = transService.transOneLoop(rst,true); return rst; } - - public synchronized void init() { - if (transService == null) { - transService = Solon.context().getBean(TransService.class); - } - } } diff --git a/easy-trans-solon-plugin/pom.xml b/easy-trans-solon-plugin/pom.xml index 1bd1ea6..6acb4db 100644 --- a/easy-trans-solon-plugin/pom.xml +++ b/easy-trans-solon-plugin/pom.xml @@ -2,15 +2,17 @@ + 4.0.0 + com.fhs-opensource easy-trans-solon - 1.1.2 + 1.1.3-M1 ../pom.xml - 4.0.0 - 1.1.2 + easy-trans-solon-plugin + com.fhs-opensource @@ -21,6 +23,7 @@ solon + diff --git a/easy-trans-solon-plugin/src/main/java/com/fhs/trans/config/EasyTransPlugin.java b/easy-trans-solon-plugin/src/main/java/com/fhs/trans/config/EasyTransPlugin.java index 5b17023..17fb601 100644 --- a/easy-trans-solon-plugin/src/main/java/com/fhs/trans/config/EasyTransPlugin.java +++ b/easy-trans-solon-plugin/src/main/java/com/fhs/trans/config/EasyTransPlugin.java @@ -1,10 +1,10 @@ package com.fhs.trans.config; import com.fhs.core.trans.anno.TransMethodResult; +import com.fhs.trans.interceptor.GlobalRouterInterceptor; import com.fhs.trans.interceptor.TransInterceptor; import com.fhs.trans.listener.TransMessageListener; import com.fhs.trans.service.impl.RpcTransService; -import org.noear.solon.annotation.Controller; import org.noear.solon.core.AopContext; import org.noear.solon.core.Plugin; @@ -14,18 +14,18 @@ public class EasyTransPlugin implements Plugin { @Override public void start(AopContext context) { //增加云启用控制 - if (context.getProps().getBool("easy-trans.enable-cloud", false)) { + if (context.cfg().getBool("easy-trans.enable-cloud", false)) { context.beanMake(TransMessageListener.class); context.beanMake(RpcTransService.class); context.beanScan("com.fhs.trans.controller"); } //增加云启用控制 - if (context.getProps().getBool("easy-trans.enable-global", false)) { - context.beanAroundAdd(Controller.class, new TransInterceptor()); + if (context.cfg().getBool("easy-trans.enable-global", false)) { + context.beanMake(GlobalRouterInterceptor.class); } - context.beanAroundAdd(TransMethodResult.class, new TransInterceptor()); + TransInterceptor transInterceptor = context.beanMake(TransInterceptor.class).get(); + context.beanAroundAdd(TransMethodResult.class, transInterceptor); context.beanScan("com.fhs.trans.config"); - } } diff --git a/pom.xml b/pom.xml index 0dfa9e9..6b7cd8e 100644 --- a/pom.xml +++ b/pom.xml @@ -2,34 +2,42 @@ + 4.0.0 org.sonatype.oss oss-parent 7 + com.fhs-opensource - https://gitee.com/fhs-opensource/easy_trans_solon - 4.0.0 easy-trans-solon - 1.1.2 + 1.1.3-M1 + pom + + + https://gitee.com/fhs-opensource/easy_trans_solon + easy-trans-anno-solon easy-trans-service-solon easy-trans-solon-plugin + UTF-8 1.8 1.8 - 1.1.2 + 1.1.3-M1 3.5.2 - 1.10.6 + 1.12.3-M6 + + -- Gitee From 53b59cc8b4cd6020132c4207a9e988c8c1ff0744 Mon Sep 17 00:00:00 2001 From: noear Date: Mon, 16 Jan 2023 15:56:18 +0800 Subject: [PATCH 2/2] =?UTF-8?q?update:=20=E6=8B=A6=E6=88=AA=E5=99=A8?= =?UTF-8?q?=EF=BC=8C=E5=A2=9E=E5=8A=A0=E9=9D=9Enull=E8=BF=87=E6=BB=A4?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fhs/trans/interceptor/GlobalRouterInterceptor.java | 5 ++++- .../java/com/fhs/trans/interceptor/TransInterceptor.java | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/easy-trans-service-solon/src/main/java/com/fhs/trans/interceptor/GlobalRouterInterceptor.java b/easy-trans-service-solon/src/main/java/com/fhs/trans/interceptor/GlobalRouterInterceptor.java index 0eb0c08..a38909e 100644 --- a/easy-trans-service-solon/src/main/java/com/fhs/trans/interceptor/GlobalRouterInterceptor.java +++ b/easy-trans-service-solon/src/main/java/com/fhs/trans/interceptor/GlobalRouterInterceptor.java @@ -26,7 +26,10 @@ public class GlobalRouterInterceptor implements RouterInterceptor { @Override public Object postResult(Context ctx, Object result) throws Throwable { //此处为拦截处理 - result = transService.transOneLoop(result, true); + if (result != null && !(result instanceof Throwable) && ctx.action() != null) { + result = transService.transOneLoop(result, true); + } + return result; } } diff --git a/easy-trans-service-solon/src/main/java/com/fhs/trans/interceptor/TransInterceptor.java b/easy-trans-service-solon/src/main/java/com/fhs/trans/interceptor/TransInterceptor.java index ef95558..3ec82a7 100644 --- a/easy-trans-service-solon/src/main/java/com/fhs/trans/interceptor/TransInterceptor.java +++ b/easy-trans-service-solon/src/main/java/com/fhs/trans/interceptor/TransInterceptor.java @@ -20,7 +20,10 @@ public class TransInterceptor implements Interceptor { public Object doIntercept(Invocation inv) throws Throwable { //此处为拦截处理 Object rst = inv.invoke(); - rst = transService.transOneLoop(rst,true); + if (rst != null) { + rst = transService.transOneLoop(rst, true); + } + return rst; } } -- Gitee