diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/Intercept.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/Intercept.java index 9f424bc3..3051b2d7 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/Intercept.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/Intercept.java @@ -37,4 +37,5 @@ import java.lang.annotation.*; public @interface Intercept { Class[] value() default {}; Class[] exclude() default {}; + boolean ignoreGlobal() default false; } diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/Invocation.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/Invocation.java index 2c182cee..aa92284e 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/Invocation.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/Invocation.java @@ -25,6 +25,7 @@ import fun.asgc.neutrino.core.aop.interceptor.Interceptor; import fun.asgc.neutrino.core.aop.interceptor.InterceptorFactory; import fun.asgc.neutrino.core.aop.proxy.ProxyCache; import fun.asgc.neutrino.core.util.CollectionUtil; +import fun.asgc.neutrino.core.util.TypeUtil; import lombok.extern.slf4j.Slf4j; import java.lang.reflect.Method; @@ -61,6 +62,7 @@ public class Invocation { this.interceptors.get(index++).intercept(this); } else { returnValue = callback.get(); + returnValue = TypeUtil.conversion(returnValue, this.targetMethod.getReturnType()); } } diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/interceptor/InterceptorFactory.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/interceptor/InterceptorFactory.java index f31780f4..614c5bfc 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/interceptor/InterceptorFactory.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/interceptor/InterceptorFactory.java @@ -105,6 +105,9 @@ public class InterceptorFactory { } } } + if (intercept.ignoreGlobal()) { + interceptors.removeAll(globalInterceptorList); + } } /** diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/db/mapper/SqlMapper.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/db/mapper/SqlMapper.java index 1285feca..1ee74e5d 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/db/mapper/SqlMapper.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/db/mapper/SqlMapper.java @@ -22,13 +22,12 @@ package fun.asgc.neutrino.core.db.mapper; import fun.asgc.neutrino.core.aop.Intercept; -import fun.asgc.neutrino.core.aop.interceptor.InnerGlobalInterceptor; /** * @author: aoshiguchen * @date: 2022/6/28 */ -@Intercept(value = SqlMapperInterceptor.class, exclude = InnerGlobalInterceptor.class) +@Intercept(value = SqlMapperInterceptor.class, ignoreGlobal = true) public interface SqlMapper { }