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,所以很难说出更明确的东西。