2017-02-24 2 views
3

私の春のブートアプリケーションでは、@AfterReturningを使用していくつかの非同期通知を送信できるようにアドバイスメソッドを使用しています。アドバイスにアドバイスがない場合、Intellijは警告を表示できますか?

これは現在の実装の例である:

 @AfterReturning(pointcut = 
      "execution(* test.NotificationService.sendNotification(..)) && args(informees, dataList)") 
     public void afterSendNotification(Informees informees, List<Data> dataList) { 
      ... 
     } 

開発中sendNotificationをメソッドのシグネチャは、sendNotificationを(Informeesのinformees、データデータ)にsendNotificationを(Informeesのinformees、リストデータリスト)から変更。問題は、ポイントカットがメソッドにアドバイスしなくなり、エラーや警告が表示されないことです。 intellijの溝アイコンは、「Advice advices no method」とだけ教えています。したがって、コードが正しく機能していないことを直ちに知ることは困難です。

  1. アドバイスのすべてのアドバイスされた方法を示すintellijの概要を表示する方法はありますか?
  2. アドバイスにアドバイスがない場合は警告を受け取ることはできますか?
  3. ポイントカットを書き込む方がいいですか?
  4. 現在、私はアドバイスが実行されていることを確認するために単体テストを書くことを検討しています。これは道のりですか?

答えて

1

IntelliJ IDEAにはこのような機能が欠けています。また、完全なAspectJ構文を完全にはサポートしていません。これには他にも私の個人的な好みである華麗なIDEの欠点がたくさんあります。 しかし、私はAspectJで何かしたいときはいつでも、この点でははるかに優れているEclipseに切り替えることができます。AspectJは実際にはEclipseプロジェクトであり、IDEをより良く保守しているからかもしれません。そこには、Xref(相互参照)ビューと、pointutが使用されているビューが両方向で、アスペクトからアプリケーションコードへ、またはその逆のどこからでも使用されます。いくつかのスクリーンショットについては、my other answerを参照してください。 更新:最後のものは、エディタ内のビジュアルインジケータと、どのジョインポイントとも一致しないアドバイスの問題ビューです。これがあなたが求めていたものです。

AspectJ Mavenプラグインを使用してMavenプロジェクトを使用している場合は、両方の利点があります。これはIDEAとEclipseの両方にインポートすることができるので、IDEAでほとんどの作業ができますが、Eclipseでのより優れたアスペクト・サポートを利用して、その側面を管理できます。申し訳ありませんが、より良いニュースをお持ちではありませんが、JetBrainsはAspectJ関連のサポートチケットや機能リクエストの作業に関して、遅くて渋滞しています。

関連する問題