【发布时间】:2014-10-28 17:53:05
【问题描述】:
Java + Spring + Maven 应用:
有人可以向我提供链接或就没有基于代理的 Spring AOP 的纯 AspectJ 实现向我提供建议吗?
我的应用程序完全基于 Spring + Maven。我目前已经使用 Spring AOP 实现了方面,但没有解决我的问题。
如果我尝试在同一 class A 中从 public method1() 访问 private method2(),则不支持此操作。
我想知道: 1)如何编写一个切入点的aspectj,支持类内方法调用? 2) 如何使用 AspectJ 加载时编织将其配置到我当前的 Spring、maven 项目中? 3) 如何在Tomcat服务器+eclipse中配置AspectJ Maven Plugin进行编译时编织。
@Controller
class A {
public void method1() {
method2("foo");
}
private String method2(String text) {
return text;
}
}
预期输出:
log.entering(method1)
log.entering(method2)
print abc
log.exiting(method2)
log.exiting(method1)
【问题讨论】:
-
不清楚什么不起作用。为您的问题添加更多详细信息(例如方面)。
-
我已经编辑了这个问题,使它有点容易理解。很明显,Spring AOP 不适用于类内方法调用,无论目标方法是公共的还是私有的,因为它们不是通过动态代理进行路由的。到目前为止,如此真实。原生 AspectJ 也确实可以解决您的问题。但是你想知道什么?如何用切入点和建议编写切面?或者如何配置 Spring 以使用 AspectJ 加载时编织?或者如何为编译时编织配置 AspectJ Maven 插件?请更新问题。
-
我想知道: 1)如何编写一个支持类内方法调用的切入点的aspectj? 2) 如何使用 AspectJ 加载时编织将其配置到我当前的 Spring、maven 项目中? 3)Tomcat服务器+eclipse中如何配置AspectJ Maven Plugin进行编译时编织。
标签: java spring maven aspectj aspectj-maven-plugin