aspectj 相关问题

AspectJ是面向方面的Java编程语言扩展,可以实现横切关注点的清晰模块化,例如日志记录,错误处理,标准实施和功能变化。使用此标记可以了解有关此扩展程序的编程用法的问题。有关下载,支持,IDE集成和文档,请参阅此标记的“了解更多信息”。

如何使用 Maven 忽略 AspectJ 编译器对某些方面的警告

如果您将 AspectJ 编译器与 Aspect 库(例如 Springs)一起使用,并且您没有任何与特定 Aspect 匹配的类,您将得到: [警告] org.springframework.orm.jpa 中定义的建议。

回答 3 投票 0

ajc可以省略指定的@Aspect类,让spring aop来处理吗?

我的应用程序需要同时使用Aspectj和Spring AOP,Spring AOP有时很方便,但是当我使用ajc编译器时,它会编译所有带有@Aspectj注释的文件。 我的问题是:我可以...

回答 1 投票 0

AOP 日志记录带来的开销

我计划记录 REST API 的所有方法的执行时间。为了实现这一点,我使用 AOP,如下所示: @方面 @成分 @Slf4j @ConditionalOnExpression("${aspect.enabled:true}")

回答 1 投票 0

Springboot中除了AOP之外还有什么有效的方式来记录执行时间?

我计划记录 REST API 的所有方法的执行时间。为此,我使用了 AOP,如下所示: @方面 @成分 @Slf4j @ConditionalOnExpression("${

回答 1 投票 0

如何为ajc指定aop.xml

我目前正在尝试使用 AspectJ 在构建时检测 Java 类。为此,我假设 ajc (https://eclipse.dev/aspectj/doc/released/devguide/ajc-ref.html) 因为 AspectJ 编译器是一个适合的...

回答 1 投票 0

当我在 Spring 中还有一个针对该 bean 的方面时,为什么不可能拥有通用 bean?

嗨,我有一个关于 Spring Aspects 的相当具体的问题,这让我很困惑。我尝试了 Springs 和 Apsects,并尝试了一个非常简单的示例来看看它是如何工作的: @成分

回答 2 投票 0

AOP 建议未在 Spring Boot 应用程序中运行

我正在尝试在我的应用程序中使用简单的日志记录方面,但建议没有运行,并且在控制台中没有收到任何日志。 添加了依赖项 - 我正在尝试在我的应用程序中使用简单的日志记录方面,但建议没有运行,并且在控制台中没有收到任何日志。 添加了依赖项- <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> </dependency> 实体类- package com.ayushsingh.aopproject.entity; import org.springframework.stereotype.Component; @Component public class Student { private Long id; private String name; private String address; private Integer age; private Long phone; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Long getPhone() { return phone; } public void setPhone(Long phone) { this.phone = phone; } } 方面类- package com.ayushsingh.aopproject.aop; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.springframework.stereotype.Component; @Aspect @Component public class LoggingAspect { LoggingAspect() { System.out.println("Logging Aspect instansiated"); } // -Run before a getter @Before("execution(public String com.ayushsingh.aopproject.entity.Student.getName())") public void LoggingAdvice1() { System.out.println("Advice 1"); } // - Run before a method of a particular class @Before("execution(public String com.ayushsingh.aopproject.entity.Student.getName())") public void LoggingAdvice2() { System.out.println("Adivce 2"); } // - Run before all getters @Before("execution(public String com.ayushsingh.aopproject.*.get*())") public void LoggingAdvice3() { System.out.println("Advice 3"); } // - Run before all setters (methods with argument) @Before("execution(public void com.ayushsingh.aopproject.*.set*(*))") // -one or more arguments public void LoggingAdvice4() { System.out.println("Advice 4"); } // -for getters of all entity classes in the entity package @Before("execution(public * com.ayushsingh.aopproject.entity.*.get*())") public void LoggingAdvice5() { System.out.println("Advice 5"); } } 主课- package com.ayushsingh.aopproject; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.EnableAspectJAutoProxy; import com.ayushsingh.aopproject.entity.Student; @SpringBootApplication @EnableAspectJAutoProxy public class AopProjectApplication implements CommandLineRunner { public static void main(String[] args) { SpringApplication.run(AopProjectApplication.class, args); } @Override public void run(String... args) throws Exception { // -Create Student object Student student = new Student(); student.setId(1L); student.setAddress("Address 1"); student.setAge(25); student.setName("Ayush"); student.setPhone(8145000047L); String name=student.getName(); System.out.println("Name: " + student.getName()); } } 现在在运行应用程序时,我还必须从建议中获取日志,但由于我还使用调试器和断点进行了检查,因此这些方面根本没有运行。 我得到的输出是- 2024-02-07T15:20:41.325+05:30 INFO 21704 --- [ restartedMain] c.a.aopproject.AopProjectApplication : No active profile set, falling back to 1 default profile: "default" 2024-02-07T15:20:41.408+05:30 INFO 21704 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable Logging Aspect instansiated 2024-02-07T15:20:42.527+05:30 INFO 21704 --- [ restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729 2024-02-07T15:20:42.607+05:30 INFO 21704 --- [ restartedMain] c.a.aopproject.AopProjectApplication : Started AopProjectApplication in 1.732 seconds (process running for 2.185) Name: Ayush 请帮我解决这个问题。 不要直接调用组件构造函数,让 Spring 容器通过在 getBean(..) 返回的应用程序上下文上调用 SpringApplication.run()(当前已被您丢弃)来为您完成此操作。 还建议您在使用新技术时至少阅读最少的文档,或者可以从功能示例应用程序开始,逐步了解更多功能,始终只更改一些小部分,如果某些功能不起作用,您可以恢复这些内容。

回答 1 投票 0

执行与执行呼叫加入点

我有两个不同的方面类来计算测试程序执行的非静态方法调用的数量。第一个方面对“调用”连接点上的方法进行计数: 切入点方法Calls() :

回答 2 投票 0

Chronicle-Map:ClassNotFoundException 与 Gradle 和 AspectJ

我在使用 Gradle 构建并使用 AspectJ 的应用程序中遇到了以下异常。 该应用程序在从 Eclipse 中启动时工作正常,但在使用 G 构建后无法启动...

回答 2 投票 0

Kotlin 中的挂起功能不适用于 AspectJ

我有一个注释,例如: @Retention(运行时) @Target(AnnotationTarget.FUNCTION) 注释类 MyAspect(val 值: MyType) 我对这个注释有一个方面: @方面 公开课

回答 1 投票 0

如何完成freefairspectJ gradle插件的设置?

我正在尝试按照 AspectJ 编译的文档完成 freefairspectj gradle 插件的设置: https://docs.freefair.io/gradle-plugins/current/reference/ 我已经安装了

回答 1 投票 0

AspectJ:@Around 有效,但 @Before 中断 - 可能是什么导致了问题? [重复]

我正在 Spring Boot 应用程序中处理 AspectJ 方面,并且遇到了一个令我困惑的问题。具体来说,当我使用@Around建议时,一切似乎都按预期工作......

回答 1 投票 0

AspectJ 兼容性

我们正在使用一个已在编译时与 AspectJ 1.9.6 一起编织的外部库。我们希望使用 Java 17,因此至少需要 AspectJ 1.9.8 来编译时编写我们自己的代码。期间...

回答 1 投票 0

AOP 不适用于内部方法调用

这可能是一个重复的问题,我不确定。所以如果它完全重复,请告诉我。但据我搜索,这与类似问题中提到的内容没什么不同......

回答 1 投票 0

AspectJ LTW + Spring Boot + 内置 Tomcat 非法访问:此 Web 应用程序实例已停止

我正在尝试在我们的Springboot应用程序中添加aspectJ LTW集成。我正在尝试使用 java 方式指定 TomcatInstrumenatbleClassLoader 和 TomcatLoadTimeWeaver 而不是 xml 方式。 参考...

回答 1 投票 0

Spring @Transactional 迁移到 Spring 5 后不起作用

我最近将应用程序从带有 AspectJ 1.8.10 的 Spring 4.3.x 和 JDK 8 升级到带有 Spring 5.3.x 和 AspectJ 1.9.20.1 的 JDK 17,并且事务注释似乎不起作用 在应用中...

回答 1 投票 0

spring-aop 由于无法创建后备 PointcutExpression 而无法工作

方面 包dim.aop; 导入 org.apache.log4j.Logger; 导入 org.aspectj.lang.JoinPoint; 导入 org.aspectj.lang.annotation.Aspect; 导入 org.aspectj.lang.annotation.Before; 导入组织。

回答 1 投票 0

Aspectj java.util.ArrayList 或 jdk 不工作

我正在学习AOP,阅读教程,并开始使用AspectJ。我的目标是“aspect”任何 jdk 文件,因此从最简单的示例 java.util.ArrayList 开始,也尝试了任何 jdk 文件,但是......

回答 1 投票 0

Javac + Lombok 阶段后如何使用 AspectJ Maven 进行二进制编织

我有一个项目,它使用已编译的方面并在编译时编织它们。我想添加Lombok,但不幸的是Lombok不支持AJC。由于该项目没有任何来源...

回答 1 投票 0

将 Spring bean 注入 AspectJ 并附加切入点

我有一个已经使用Spring AOP的Spring Boot项目。对于新功能,需要使用 cflow 切入点,因此必须集成 AspectJ。 我成功地能够编译时间...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.