UnsupportedPointcutPrimitiveException:切入点表达式 'getEncryptedValue()' 包含不受支持的切入点原语 'get'
UnsupportedPointcutPrimitiveException: Pointcut expression 'getEncryptedValue()' contains unsupported pointcut primitive 'get'
我正在使用 spring-boot-starter-parent 2.0.3-RELEASE,在我的方面使用切入点原语 'get',如下所示。
@Pointcut("get(* *) && @annotation(com.test.cryptography.EncryptEnabled)")
public void getEncryptedValue() {
}
但是当我将 spring 引导版本升级到 2.6.6 时,它开始失败并出现以下错误。
BeanPostProcessor before instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration': Initialization of bean failed; nested exception is org.aspectj.weaver.tools.UnsupportedPointcutPrimitiveException: Pointcut expression 'getEncryptedValue()' contains unsupported pointcut primitive 'get'
我需要为最新的 spring 版本做任何更改吗
如 Spring 手册第 Supported Pointcut Designators, get()
is unavailable in Spring AOP. I.e., if it worked for you before, you must have used native AspectJ, possibly via LTW (load-time weaving) 章所述。
因此,如果在 Spring(引导)升级后它不再工作,您可能只是遇到了配置问题,可能只是忘记 re-add 一个 JMV 参数 -javaagent:/path/to/aspectjweaver.jar
,你可能以前用过。因为你的问题缺少MCVE,所以很难说出更明确的东西。
我正在使用 spring-boot-starter-parent 2.0.3-RELEASE,在我的方面使用切入点原语 'get',如下所示。
@Pointcut("get(* *) && @annotation(com.test.cryptography.EncryptEnabled)")
public void getEncryptedValue() {
}
但是当我将 spring 引导版本升级到 2.6.6 时,它开始失败并出现以下错误。
BeanPostProcessor before instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration': Initialization of bean failed; nested exception is org.aspectj.weaver.tools.UnsupportedPointcutPrimitiveException: Pointcut expression 'getEncryptedValue()' contains unsupported pointcut primitive 'get'
我需要为最新的 spring 版本做任何更改吗
如 Spring 手册第 Supported Pointcut Designators, get()
is unavailable in Spring AOP. I.e., if it worked for you before, you must have used native AspectJ, possibly via LTW (load-time weaving) 章所述。
因此,如果在 Spring(引导)升级后它不再工作,您可能只是遇到了配置问题,可能只是忘记 re-add 一个 JMV 参数 -javaagent:/path/to/aspectjweaver.jar
,你可能以前用过。因为你的问题缺少MCVE,所以很难说出更明确的东西。