问题标签 [ajdt]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2254 浏览

java - 获取切面中的类名和方法参数

我正在从事一个项目,该项目基本上是很多定期运行的流程。每个进程都是一个不同的类,它扩展了RunnableProcess我们创建的抽象类,其中包含run带有以下签名的抽象方法:

为了提高项目的模块化,我开始使用面向方面编程 (AOP) 来拦截run来自每个RunnableProcess. 我还在学习AOP,到目前为止我有以下代码:

我遇到的问题与 logger ( org.slf4j.Logger) 初始化有关 - 我希望它与进程类(扩展的那个RunnableProcess,并且它被方面拦截)链接,这不会发生在这里(getClass()检索方面类)。我怎样才能做到这一点而不改变其子项的实现RunnableProcess

0 投票
1 回答
168 浏览

java - AOP - 从拦截的类访问受保护/私有属性

我正在从事一个项目,该项目基本上是很多定期运行的流程。每个进程都是一个不同的类,它扩展了RunnableProcess我们创建的一个抽象类,它包含一个private属性和带有以下签名Map<String, String> result的抽象方法:run

为了提高项目的模块化,我开始使用面向方面编程 (AOP) 来拦截run来自每个RunnableProcess. 我还在学习AOP,到目前为止我有以下代码:

它正在工作,但我想记录更多信息,而不仅仅是"process run successfully". result我在上面提到的属性中的拦截类中有这些信息。是否可以在不更改执行的情况下在建议中访问它RunnableProcess

我可以(不喜欢,但如果它是唯一的选择......)将属性从 更改privateprotected,但我不会将其更改为public. 我也不想get为它创建一个方法。

0 投票
1 回答
304 浏览

java - 使用 AspectJ/Spring Boot 设置 Spring Tool Suite 4(缺少 m2e 连接器)

我正在使用最新版本的 STS,目前是 4.11。我正在构建一个新项目并试图让 AspectJ CTW 与 Spring Boot 一起工作。我有一些单元测试来检查 @Async 方法调用的各个方面。有趣的是,单元测试通过 Maven 全新安装通过,但在通过 STS 构建时却没有。

我相信原因是 AJDT 插件或 AJDT 配置器插件不起作用,因为我看到了这个错误:

我正在使用具有这些设置的最新 aspectj maven 插件。

我尝试安装这两个软件安装:

进行此设置似乎总是很痛苦。有没有人设法用 Java 11 做到这一点?

0 投票
1 回答
522 浏览

eclipse - 在 STS 4 (Eclipse 4.21.0) 中打开 .aj 文件时出错

2021 年 11 月 15 日更新

看起来这可能已经被报告过了,而且修复程序还没有发布。 https://bugs.eclipse.org/bugs/show_bug.cgi?id=575897

如果有人有解决方法,仍然会受到赞赏。

我现在可以在不同的编辑器中编辑文件,但这是一个很大的痛苦。

原始问题

无法在 STS 4.12.1.RELEASE 中打开 aspectj 文件 (*.aj)

每当我尝试打开 .aj 文件时,Eclipse 都会给出错误“无法初始化编辑器”并引发以下异常。

此外,如果我在 Package Explorer 中单击 .aj 文件,会弹出一个弹出窗口,显示“出现问题”和“发生错误。有关详细信息,请参阅错误日志。” 和同样的例外。日志只包含相同的异常。

它似乎与Equinox有关,因此我尝试从STS 4中卸载Equinox,但无法全部卸载(显然,由于其他插件依赖于它),并且错误仍然存​​在。

我正在使用“开箱即用”的 STS 4,仅进行以下附加修改:

  • AspectJ 开发工具 2.2.4.202103162301
  • AJDT 的 Maven 集成(可选)0.14.0.201302011330
  • 龙目岛 1.18.22

我的 maven 项目依赖于 AspectJ 1.9.7 和 maven-aspectj-plugin 1.14.0,我正在运行 JDK 11。

这是我的 .log 文件的内容,删除了大部分堆栈跟踪以适应这个问题:

2021 年 11 月 16 日更新

将 .ini 文件更改为指向 Java 11 jvm,但仍然出现异常: .log 文件的新开始: