草庐IT

aspectj-weaver

全部标签

java - 如何让 Lombok 和 AspectJ 一起工作?

我刚刚发完thisissueonSO关于Lombok没有生成我的getter/setter。事实证明,它与AspectJ冲突。如果我禁用AspectJ,那么会适本地生成getter/setter。我的猜测是ajc编译器无法识别lombok。Lombok和AspectJ是否相互排斥?两种技术可以一起工作吗? 最佳答案 AspectJ维护者AndyClement目前的回答是,由于在AspectJ编译器基础结构中包含和重命名了ECJ(Java的Eclipse编译器)包,因此存在问题。有关更多信息,EricB.和A.Clement正在Asp

java - AspectJ "around"和 "proceed"与 "before/after"

假设您有三个建议:around、before和after。1)在around建议中调用proceed时是否会调用before/after,还是将它们称为before/afteraround建议作为一个整体?2)如果我的around建议没有调用proceed,before/after建议仍然会运行吗? 最佳答案 通过这个测试@AspectpublicclassTestAspect{privatestaticbooleanrunAround=true;publicstaticvoidmain(String[]args){newTestA

java - 如何使用 AOP 和 AspectJ 进行日志记录?

我想在我的所有公共(public)方法中添加“跟踪”消息,如下所示:publicvoidfoo(s:String,n:int){//logisalog4jloggeroranyotherlibrarylog.trace(String.format("Enterfoowiths:%s,n:%d",s,n))...log.trace("Exitfoo")}现在我想使用AOP(和字节码检测)自动将所有这些log.trace添加到我的方法中。我正在考虑AspectJ。是否有意义?你知道有什么开源软件可以做到这一点吗? 最佳答案 我创建了一个

java - 将 @Autowired 与 AspectJ 和 Springboot 一起使用

我想在“Aspect”中使用@Autowired注释。我想在我的方面注入(inject)一个存储库,但是当我尝试调用我的Autowiring类的方法时,会发生NullPointException。@AspectpublicclassAspectSecurity{@AutowiredprivateUserRepositoryuserRepository;@After("execution(public*dash.*.*Controller.*(..))")publicvoidauthentication(JoinPointjp)throwsUnauthorizedException{Sy

java - 启用 Spring AOP 或 AspectJ

这是从这个问题开始的:Springautowiredbeanfor@Aspectaspectisnull我最初的理解是,在使用SpringAOP时,使用@Aspect注释的类被创建为Spring托管bean,因此依赖注入(inject)将正常工作。但是,带有@Aspect注释的对象似乎是作为spring容器外部的单例创建的,因此我必须像这样在XML中配置它才能将其作为spring托管bean启用:现在这完全让我感到困惑。我以为下面的配置会使用springAOP:所以它会使用组件扫描创建方面bean来扫描@Aspect注释,然后autoproxy会创建一个beanPostProcesso

java - 使用aspectJ的AOP中的Joinpoint VS ProceedingJoinPoint?

谁能告诉我Joinpoint和Proceedingjoinpoint有什么区别?切面类的方法中什么时候使用Joinpoint和Proceedingjoinpoint?我在我的AspectJ类中使用了JoinPoint,例如:@Pointcut("execution(*com.pointel.aop.test1.AopTest.beforeAspect(..))")publicvoidadviceChild(){}@Before("adviceChild()")publicvoidbeforeAdvicing(JoinPointjoinPoint/*,ProceedingJoinPoin

java - 使用 aspectj-maven-plugin 为 java 8 编织 Spring + AspectJ

我正在将我的项目从java7迁移到java8,我遇到的问题与使用aspectj-maven-plugin的aspectj编织有关。我可以根据Hausdocumentation使用在Java6和7上运行的插件成功配置编织。.但问题是我还没有找到任何方法来使用(并找到)支持java8的插件版本7。我看到了here该插件7添加了对java8的支持,但找不到使用它的方法。这是我需要的配置插件:org.codehaus.mojoaspectj-maven-plugin1.71.81.81.8compiletest-compile我确认使用1.6版的上述代码适用于Java7,但尝试使用1.7版时没

spring - 在 Java 7 中使用 AspectJ AOP 时出错

我已将Java更新到版本“1.7.0_09-icedtea”(之前是1.6)并收到以下消息:Instantiationofbeanfailed;nestedexceptionisorg.springframework.beans.BeanInstantiationException:Couldnotinstantiatebeanclass[org.springframework.aop.aspectj.AspectJPointcutAdvisor]:Constructorthrewexception;nestedexceptionisjava.lang.IllegalArgumentE

java - 如何启用 <aop :aspectj-autoproxy> with java-based annotations

我正在尝试设置没有任何XML的SpringAOP。我想启用在一个类中注释为@Configuration.这是在XML文件中定义的方式:我尝试用@Configuration注释我的类(class)和@EnableAspectJAutoProxy但什么也没发生。 最佳答案 您是否在同一个@Configuration类中创建了一个方面bean?这是thedocs建议:@Configuration@EnableAspectJAutoProxypublicclassAppConfig{@BeanpublicFooServicefooServi

java - 具有特定注释的类的所有方法的@AspectJ 切入点

我想用指定的注解(比如@Monitor)监控所有类的所有公共(public)方法(注意:注解在类级别)。这可能是什么切入点?注意:我使用的是@AspectJ风格的SpringAOP。 最佳答案 您应该将类​​型切入点与方法切入点结合起来。这些切入点将用于查找标有@Monitor注释的类中的所有公共(public)方法:@Pointcut("within(@org.rejeev.Monitor*)")publicvoidbeanAnnotatedWithMonitor(){}@Pointcut("execution(public**(