我使用spring-boot-starter-parent 2.0.3-RELEASE,在我的方面中使用切入点原语'get',如下所示。
@Pointcut("get(* *) && @annotation(com.test.cryptography.EncryptEnabled)")
public void getEncryptedValue() {
}
字符串
但是当我将Sping Boot 版本升级到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 发行版,我需要做什么改变吗
1条答案
按热度按时间mbjcgjjk1#
如Spring手册中所述,章节Supported Pointcut Designators,
get()
在Spring AOP中不可用。即,如果它以前对您有效,您必须使用原生的AOP J,可能通过LTW(加载时编织)。因此,如果在Spring( Boot )升级后它不再工作,那么您可能只是遇到了配置问题,可能只是忘记重新添加JMV参数
-javaagent:/path/to/aspectjweaver.jar
,而您之前可能正在使用该参数。