在我的spring-boot应用程序中,我使用@AfterReturning to advice方法来发送一些异步通知。
这是当前实现的一个示例:
@AfterReturning(pointcut =
"execution(* test.NotificationService.sendNotification(..)) && args(informees, dataList)")
public void afterSendNotification(Informees informees, List<Data> dataList) {
...
}
在开发过程中,sendNotification方法的签名从sendNotification更改为(被通知人被通知人、数据数据)至发送通知(线人线人,List dataList).问题是切入点不再建议方法,也没有显示错误或警告,intellij中的排水沟图标只是告诉我“Advice不建议任何方法”。因此,很难立即看出代码不再正常工作。
1.是否有一种方法可以在intellij中获得一个概述,显示建议的所有建议方法?
1.如果一个建议没有给出任何方法,我能得到警告吗?
1.有没有更好的方法来编写切入点?
1.目前我正在考虑编写单元测试,以确保建议得到执行。这是要走的路吗?
1条答案
按热度按时间ozxc1zmp1#
遗憾的是,IntelliJ IDEA缺乏这样的功能。它也不完全支持完整的AspectJ语法。这个非常出色的IDE有很多缺点,与其他IDE相比,它是我个人的最爱。但是每当我想在AspectJ中做一些事情时,我都会切换到Eclipse,它在这方面要上级得多。也许是因为AspectJ实际上是一个Eclipse项目,并且在IDE方面维护得更好。(交叉引用)视图和在两个方向上使用Pointut的视图,从方面到应用程序代码,反之亦然。请参阅my other answer的一些截图。**更新:**最后一个显示了编辑器和问题视图中的可视指示器,用于显示不匹配任何连接点的建议。这是您所要求的。
如果你使用一个带有AspectJ Maven插件的Maven项目,你可以获得两个世界的最佳效果。这可以导入IDEA和Eclipse,所以你可以在IDEA中工作,但是可以利用Eclipse中更好的方面支持来管理你的方面。很抱歉没有更好的消息给你,但是JetBrains在处理AspectJ相关的支持票或者特性请求方面非常慢并且不情愿。