From 0acda5c1d982cbadbc27e3a87c95f8bbdd06af4e Mon Sep 17 00:00:00 2001 From: "fulan.zjf" Date: Fri, 28 May 2021 18:12:58 +0800 Subject: [PATCH] fix AOP error --- .../alibaba/cola/extension/register/ExtensionRegister.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cola-components/cola-component-extension-starter/src/main/java/com/alibaba/cola/extension/register/ExtensionRegister.java b/cola-components/cola-component-extension-starter/src/main/java/com/alibaba/cola/extension/register/ExtensionRegister.java index 428b7b43d..f8075484e 100644 --- a/cola-components/cola-component-extension-starter/src/main/java/com/alibaba/cola/extension/register/ExtensionRegister.java +++ b/cola-components/cola-component-extension-starter/src/main/java/com/alibaba/cola/extension/register/ExtensionRegister.java @@ -9,6 +9,7 @@ import com.alibaba.cola.extension.*; +import org.springframework.aop.support.AopUtils; import org.springframework.core.annotation.AnnotationUtils; import org.springframework.stereotype.Component; import org.springframework.util.ClassUtils; @@ -30,6 +31,9 @@ public class ExtensionRegister{ public void doRegistration(ExtensionPointI extensionObject){ Class extensionClz = extensionObject.getClass(); + if (AopUtils.isAopProxy(extensionObject)) { + extensionClz = ClassUtils.getUserClass(extensionObject); + } Extension extensionAnn = AnnotationUtils.findAnnotation(extensionClz, Extension.class); BizScenario bizScenario = BizScenario.valueOf(extensionAnn.bizId(), extensionAnn.useCase(), extensionAnn.scenario()); ExtensionCoordinate extensionCoordinate = new ExtensionCoordinate(calculateExtensionPoint(extensionClz), bizScenario.getUniqueIdentity()); @@ -55,4 +59,4 @@ private String calculateExtensionPoint(Class targetClz) { throw new RuntimeException("Your name of ExtensionPoint for "+targetClz+" is not valid, must be end of "+ EXTENSION_EXTPT_NAMING); } -} \ No newline at end of file +}