【java – AspectJ – 本机方法调用的切入点】教程文章相关的互联网学习教程文章

java – Spring AspectJ从ProceedingJoinPoint获取方法注释【代码】

我有一个方面来处理具有自定义注释的所有方法. 注释有一个枚举参数,我必须得到方面的值:@Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface Monitored {MonitorSystem monitorSystem(); }我的情况与question非常相似,并且接受的答案适用于没有实现接口的Spring bean. 方面:@Aspect @Component public class MonitorAspect {@Around("@annotation(com.company.project.monitor.aspect.Monitored...

java – AspectJ和PostSharp之间的功能区别是什么?

有谁知道AspectJ和PostSharp之间的AOP功能有什么不同(是的,我知道它们适用于不同的语言和平台)? 我试图理解AspectJ允许PostSharp不会做什么样的事情,反之亦然.解决方法:PostSharp 2.0比PostSharp 1.5更接近AspectJ. PostSharp 1.5与Spring AOP的比较是合理的,但PostSharp 2.0已不再适用. 但是,方法仍然存在一些差异. >切入点的方法完全不同. AspectJ提供了一种复杂的切入点语言. PostSharp提供了一个基本的声明性切入点系统,但是您...

java – spring和aspectj,非代理对象的拦截方法

我想拦截来自非代理对象的方法. 我有一个类实例MyClass myClassInstance = new MyClass(),我想拦截myClassInstance方法的调用. 我知道所有代理工作都很好,但我需要非代理的方面. 这可能吗? 谢谢.解决方法:这是可能的,但这是不可取的. 您可以使用@Configurable和AspectJ来拦截调用.阅读the 7.8.1 Using AspectJ to dependency inject domain objects with Spring section of the docs. 简而言之 – AspectJ插入一些“魔法”编译时...

java – AspectJ:访问私有字段?【代码】

我想使用方面为私有id字段添加getter和setter.我知道如何通过方面添加方法,但是如何访问私有id字段? 我认为我只需要做出这方面的准备.我尝试了以下代码,但方面无法访问id字段.public privileged aspect MyAspect {public String Item.getId(){return this.id; }一种可能性是用户反思,如本博文中所示:http://blog.m1key.me/2011/05/aop-aspectj-field-access-to-inejct.html 反射是唯一的可能性,还是有办法用AspectJ做到这一点?解...

java.lang.ClassNotFoundException:org.aspectj.weaver.reflect.ReflectionWorld $ReflectionWorldExceptio【代码】

当我启动intellij时,我在每个bean和“org.springframework.aop.support.DefaultBeanFactoryPointcutAdvisor”中收到以下错误; 这是我的maven设置文件:<dependencies> <dependency><groupId>javax.persistence</groupId><artifactId>persistence-api</artifactId><version>1.0.2</version> </dependency> <dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>4.2.6.RELEASE</version>...

java – 使用AspectJ了解调用者类【代码】

我试图模仿Spring的AspectJ @Async support,但是有一条消息总线. 问题是我需要知道我的消息总线(RabbitMQ MessageListener)是调用方法还是正常(所有其他)调用方,方法将立即返回. 我的注释称为@MQAsync而不是Springs @Async.package com.snaphop.mqueue;import org.apache.log4j.Logger; import com.snaphop.mqueue.MQAsync;public aspect MQAsyncAspect {//pointcut asyncTypeMarkedMethod() : execution(@MQAsync void *(..));poi...

java – Eclipse:如何将Web项目转换为AspectJ项目并使用AJDT插件编织和运行它?【代码】

我想做的事: >我想在Spring中使用@Configured注释.它需要启用AspectJ.我认为使用AJDT插件进行编译时编织可以解决这个问题.在安装插件之前,应该注入我的@Configured对象的依赖项保持为null. 我做了什么: >为Eclipse 3.4安装了AJDT: AspectJ Development Tools插件.>右键单击我的Web项目并将其转换为AspectJ项目.>启用编译时编织. 什么行不通: >当我立即启动Tomcat 6服务器时,我收到异常*. 其他信息: >我没有在项目属性的AspectJ...

java – AspectJ加载时编织Spring 3.0.5.RELEASE Tomcat 7不能正常工作

我试图找出为什么加载时编织对我的Web应用程序还没有工作.对于我的正常应用程序(不是webapp),它正在运行. 测试项目可以在github上找到(github / peterbollen / helloLtw):helloLtwAspect 当我启动应用程序时,日志显示加载时织入器正在工作(view log).但是当我触发EchoServlet时,EchoAspect并没有被编入(view log). 有没有人有想法?随意检查代码并尝试自己(我测试了自述文件:) :)感谢您的任何建议;-) 更新1 使用javaagent aspectj...

java – Jacoco代码覆盖率受AspectJ影响

我们在项目中使用AspectJ,并在Jacoco中使用测试覆盖率报告,目前我们正面临一个问题,即由于AspectJ在编译阶段改变了字节代码,这使得代码覆盖率报告不正确.一个例子是由于AspectJ添加了额外的if-else语句,然后分支覆盖显示了类似1/4但实际上源代码中没有条件分支.是否有一些好方法告诉Jacoco忽略AspectJ生成的所有代码? 非常感谢.解决方法:我在这里复制我刚刚在JaCoCo邮件列表上写的答案: 如果您想避免从源代码编译,您可以使用Aspe...

如何使用AspectJ拦截java类中的静态属性?【代码】

在下面的代码片段中,每当访问属性myList时,我都需要执行一些逻辑.可能吗?public class Test {public static List<String> myList = new ArrayList();public static void addData(){myList.add("foo");myList.add("bar");}public static void removeData(){if(myList.size() > 0){myList.remove(0);}}public static void displayData(){for (String data : myList) {System.out.println("data : "+data);}}public static void main...

java – AspectJ – 本机方法调用的切入点【代码】

是否可以使用AspectJ在本机方法调用上设置切入点?我试过以下方面:public aspect EmailAspect {pointcut conn() : call(* java.net.PlainSocketImpl.socketConnect(..));before() : conn() {System.out.println("Connecting");} }但它不起作用.我也没有通过谷歌搜索找到太多相关信息(除了这个http://blog.jayway.com/2007/02/16/static-mock-using-aspectj,但是不清楚它是否可能以及如何做到这一点). 我试图在Eclipse中调试我的测...

java – AspectJ ITDs:实现通用接口【代码】

我希望我的类实现一个接口,但我想在一个方面使用ITD提供方法的实现.这可能吗? 接口:public interface CloningService<T> {public T clone(T object); }默认实施:public class DefaultCloningServiceImpl implements CloningService<T> {public T clone(T object) {// implementation of the clone method} }具体实施:public class PersonService implements CloningService<Person> {// no code (!) }PersonService类将声明它实...

java – AspectJ – 记录HttpServletRequest【代码】

我想劫持HTTPServletRequest并使用AspectJ从它中记录一些值.但是,JoinPoint中的最终结果是“RequestFacade”对象.我可以用这个对象做很多事情.我的记录策略是错的吗?如何从HttpServletRequest获取有用的信息?如果我必须在调用方法之前解开它,那么这种方法在我的应用程序中就失去了AOP的目的. 我正在使用Glassfish服务器,如果这有所作为.@Before("execution(* Service.testAuditRecord(..))") public void logBefore(JoinPoint jo...

java – 为什么这个Spring Aspect不能像方法参数一样打印?【代码】

Let me first foremention, the problem I’m facing is with the interceptThoughts(String thoughts) method, from the first code block, not printing 我正在运行Spring in Action的教程.有一个魔术师类用interceptThoughts(String ideas)和getThoughts()方法实现MindReader接口@Aspect public class Magician implements MindReader {private String thoughts;@Pointcut("execution(* com.underdogdevs.myspringaspectj." + "...

java – aspectJ示例中的nullpointer异常【代码】

我试图实现我们的stackoverflow成员在这里Logging entry, exit and exceptions for methods in java using aspects给出的建议之一.由于这本身就是不同的问题,再次在这里发布. 我试图搜索,但看起来不同的版本有不同的方式,并无法在网上找出一个例子.我尝试了以下简单示例,因为我是面向方面编程的新手,无法弄清楚如何实现.这个例子是投掷NPE.请帮我理解我做错了什么. ====例外Exception in thread "main" java.lang.NullPointerExcep...

ASPECT - 相关标签