2017-11-25 22 views
0

Hibernateエンティティで定義された関数の実行をポイントカットするにはどうすればいいですか?Spring Beanとして作成されたりロードされたりしません。これを行う方法をインターネット上の任意のヘルプを見つけることができませんでした。AspectJ Spring AOPポイントカットのHibernateエンティティ関数

スプリング・トゥ・ポイント・カット・ハイバネート・エンティティを使用する方法はありますか?春AOPで

This is what I found, but no solution

答えて

0

、あなたはそれを行うことはできません。 Spring AOPは、限定されたAOPソリューションであり、AspectJに対してと同様のしかありません。スプリングAOPは、多くの方法でAspectJのより少ないことが可能である:

  • スプリングAOPはAspectJのポイントカットの限られたサブセットをサポート(ポイントカットのみ実行型)
  • スプリングAOPは、AspectJの比較異なる意味を有することなぜならダイレクトバイトコード操作ではなく動的プロキシを使用します。 AOPが使用するプロキシベースのソリューションでは、同じオブジェクト内の別のメソッドを呼び出すときなど、制御フローが代理オブジェクトを離れるときにアドバイスは実行されません。this.someOtherMethod()
  • Spring AOPはSpring管理Beanでのみ機能します。 HibernateエンティティはSpring管理Beanではないため、Spring AOPはそれらには適用されません。

Hibernateのエンティティや他の春の管理されていないBeanにアドバイスできるよう、ネイティブのAspectJに切り替えることをお勧めします。 SpringはAspectJをうまくサポートしているので、Spring AOPの代わりにネイティブのAspectJを使うように設定を変更できるはずです。

関連する問題