gpt4 book ai didi

java - Spring - 带有注释的构造函数对象的 AspectJ 切入点

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:41:44 25 4
gpt4 key购买 nike

我正在使用 Spring 框架 (4.0.5) 和用于 AOP 日志记录的 AspectJ 开发一个 java (JDK1.6) 应用程序。

我的方面类工作正常,但我无法为构造函数对象创建切入点。

这是我的对象:

@Controller
public class ApplicationController {
public ApplicationController(String myString, MyObject myObject) {
...
}
...
..
.
}

这是我的方面类:

@Aspect
@Component
public class CommonLogAspect implements ILogAspect {
Logger log = Logger.getLogger(CommonLogAspect.class);

// @Before("execution(my.package.Class.new(..)))
@Before("execution(* *.new(..))")
public void constructorAnnotatedWithInject() {
log.info("CONSTRUCTOR");
}
}

如何为构造函数对象创建切入点?


谢谢

最佳答案

Sotirios Delimanolis 是正确的,因为 Spring AOP 不支持构造函数拦截,您确实需要完整的 AspectJ。 Spring 手册,章节 9.8 Using AspectJ with Spring applications ,描述了如何将其与 LTW(加载时编织)一起使用。

另外,你的切入点有问题

@Before("execution(* *.new(..))")

构造函数没有像 AspectJ 语法中的方法那样的返回类型,因此您需要删除前导的 *:

@Before("execution(*.new(..))")

关于java - Spring - 带有注释的构造函数对象的 AspectJ 切入点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27527495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com