在我的spring应用程序中,我使用@AfterReturning通知方法来发送一些异步通知。
这是当前实现的一个例子:
@AfterReturning(pointcut =
"execution(* test.NotificationService.sendNotification(..)) && args(informees, dataList)")
public void afterSendNotification(Informees informees, List<Data> dataList) {
...
}
在开发过程中,sendNotification方法的特征从sendNotification(Informees informees,Data data)变为sendNotification(Informees informees,List dataList)。问题是切入点不再通知该方法,也没有显示错误或警告。intellij中的阴沟图标只是告诉我,“建议不建议任何方法”。因此,很难立即看到代码不再正确运行。
发布于 2017-03-03 23:48:44
不幸的是,IntelliJ的想法缺乏这样的功能。它也不完全支持完整的AspectJ语法。在这个非常出色的IDE中有很多缺点,这是我个人最喜欢的,与其他人相比。但是--每当我想在AspectJ中做一些事情时,我就切换到Eclipse,这在这方面要好得多,也许是因为AspectJ实际上是一个Eclipse项目,并且更好地维护了IDE。在这里,您有一个Xref (交叉引用)视图和视图,它在从方面到应用程序代码的两个方向上都使用poinctut,反之亦然。有关一些截图,请参见my other answer。更新:,最后一个显示编辑器中的可视指示符和不匹配任何连接点的建议的问题视图。这就是你要的。
如果您使用AspectJ Maven插件来使用Maven项目,那么您可以从这两个方面中获益。这可以导入IDEA和Eclipse,因此您可以大部分时间在IDEA中工作,但是使用Eclipse中更好的方面支持来管理您的方面。很抱歉没有给您带来更好的消息,但是JetBrains在处理AspectJ相关的支持票或功能请求方面非常缓慢和不情愿。
https://stackoverflow.com/questions/42435691
复制相似问题