aspect

以下是为您整理出来关于【aspect】合集内容,如果觉得还不错,请帮忙转发推荐。

【aspect】技术教程文章

java – 关于方法变量的AspectJ切入点,有可能吗?【代码】

我一直在使用AspectJ,它在包含注释的对象范围字段上运行良好.我刚刚遇到一种情况,我想要注释一个方法范围的变量,它将与我的切入点一起工作,但我遇到了麻烦. 这是我正在使用的切入点.如果我的变量是对象的字段,它工作正常,但如果我将范围缩小到方法(在方法内声明的变量),那么它不再工作,我不知道为什么.让我知道我能做些什么,谢谢.after(final Trigger trigger): set(@Triggereable * *) && args(trigger){System.out.println("trig...

java – 异步服务中的Spring请求范围?在threadLocal变量上实现ThreadScope,并使用AsyncAspect进行清理【代码】

我有一个启动一系列操作的Web服务.从同一请求开始的所有这些操作都共享一个包含一些锁和一些其他信息的actionContext. 到目前为止,Spring会在使用“请求”范围的所有操作中注入此actionContext对象. 现在我正在实现一个Web套接字服务,以便能够跟踪这些操作的演变.webService现在必须生成一个处理动作执行的线程,并将webSocket地址返回给调用的应用程序/用户. 该操作已使用spring的@async注释实现,并将在应用程序上下文中定义的线程...

java – 无法从main中捕获异常:after()throw(Exception e) – AspectJ【代码】

我试图捕获在我的Java类中的main中抛出的异常. 我的主要代码:public static void main(String[] args){new something();throw new RuntimeException(); }在我的方面,我创建了after()返回:执行(* main(*)){advice}和after()throw(异常e):执行(* main(*)){advice}以查明是否为了在每个建议中做一些不同的事情,主要与否抛出异常. 请注意,在第二个内部,我使用以下命令在输出中打印e异常:System.out.println("Threw an exception: "...

java – AspectJ – 为什么使用注释而不是ajc编译器?

我们可以使用@AspectJ注释样式来定义方面,以及AspectJ Java扩展语言,这需要我们使用ajc编译器. 人们想要使用注释样式而不是ajc的原因是什么?在我看来,通过使用注释样式放弃了很多功能,但除了不必使用ajc之外没有太多(如果有的话)获得(不得不使用ajc这么糟糕?) 有人可以请教我这个话题吗?解决方法:两种样式(.aj和@AspectJ)都具有另一种不能做的功能. 请参阅这篇文章,了解注释可以做的事情,声明性的AspectJ不能:What is the Aspe...

java – 使用AspectJ生成Getters / Setter

我想写一个方面,它将为正在使用它的类的字段生成getter / setter. 我是AspectJ的初学者,有人能指出我正确的方向吗?样本会很好.解决方法:您正在寻找的是Project Lombok.它生成getter / setter和其他各种方便的方法.它与Eclipse集成,因此技术上不存在的访问器是可见的.

使用slf4j进行日志记录时的spring aspectj切入点【代码】

我正在使用spring 3.0.6.我的应用程序有很多添加日志的地方(slf4j).假设我需要在每个严重错误上添加一些函数 – 我会更好地捕获每次调用错误级别的日志记录,并且可以在它之后执行工作 – 使用异常消息发送邮件到支持,或者像那样smth – 而不是手动添加代码应用程序中的所有位置. 我创建了以下课程:@Aspect public class LoggingWrapper {@Pointcut("execution (* org.slf4j.Logger.error(..))")public void logError() {}@AfterR...

java – AspectJ:VerifyError【代码】

我正在尝试面向方面编程.我在Eclipse中安装了AspectJ-Plugin并遵循了tutorial中提到的所有步骤.创建的方面之间的所有连接都有效,但是当我尝试运行项目时,我收到以下异常:HelloException in thread "main" java.lang.VerifyError: Expecting a stackmap frame at branch target 6 in method helloworld.World.<clinit>()V at offset 0 at helloworld.Hello.sayHello(Hello.java:11) at helloworld.Hello.main(Hello.java:6)当我清空...

java – AspectJ – 在运行时使用自定义ClassLoader进行编织【代码】

我正在尝试在运行时加载类,并在此时用一些AspectJ方面编织它们.我启用了加载时编织,并且当我更常规地使用它时它可以工作. 我的@Aspect类中有以下内容:@Before("call(* mypackage.MyInterface.*())") public void myInterfaceExecuteCall(JoinPoint thisJoinPoint,JoinPoint.StaticPart thisJoinPointStaticPart,JoinPoint.EnclosingStaticPart thisEnclosingJoinPointStaticPart) {System.out.println(thisJoinPoint.getSignature...

java – 使用AspectJ实现虫洞模式【代码】

我正在寻找一个使用AspectJ的虫洞模式实现的例子(如果Guice AOP有能力实现这一点,那将会很感兴趣). 蠕虫孔本质上允许您沿着调用流传递其他参数,例如:// say we have class foo {public int m0 int a, int b) {return m1(a,b);}public int m1 int a, int b) {return m2(a,b);}public int m2 int a, int b) {return a+b;} } // and I wanted in a non-invasive manner to pass a third parameter of type class context {String use...

java – 使用AspectJ进行Eclipse调试步骤

我在Eclipse设置中使用了“The AspectJ Development Tools”插件.我正在尝试调试一些使用AspectJ并逐步执行它的代码,但它无法匹配源代码行,因为AspectJ在编译时添加了额外的东西.似乎没有人抱怨看起来像是一个主要的缺陷(无法调试!),所以我希望我只需要调整一些东西来使其工作.我究竟做错了什么?解决方法:是的,这是AspectJ的一个错误.单步执行建议附加了不正确的文件属性.最好的解决方法是在您的建议中委托一个适当的方法,并且行...

ASPECT - 相关标签