この記事では主にJavaのSpringフレームワークにおけるAOPの役割を紹介していますので、必要な方は参考にしてください
AOPがない場合はログ処理をする際に
などの各メソッドにログ処理を追加します。
しかし、ほとんどの場合、処理コードは同じです。コードの再利用を実現するために、ログ処理を新しいメソッドに分離する場合があります。ただし、これらのメソッドを手動で挿入する必要があります。
しかし、これら JAVAにおけるSpring Aopの役割の詳細な説明 つのメソッドは強く結合されています。現時点でこの関数が必要ない場合、または他の関数に切り替えたい場合は、それらを JAVAにおけるSpring Aopの役割の詳細な説明 つずつ変更する必要があります。
動的プロキシを通じて、指定された場所で対応するプロセスを実行できます。このようにして、いくつかの水平関数を抽出して独立したモジュールを形成し、これらの関数を指定された場所に挿入することができます。この種の考え方は、アスペクト指向プログラミング (AOP) と呼ばれます。
これらの水平関数を指定された場所で実行するには、指定された場所がどこであるかを知る必要があります
たとえば、上の図では、プログラム内のメソッドレベルの AOP 実装実行チェーン、メソッド JAVAにおけるSpring Aopの役割の詳細な説明 を呼び出します。 カット ポイント、つまり、メソッド JAVAにおけるSpring Aopの役割の詳細な説明 が実行されるとクロスカッティング関数が実行されます。それでは、メソッド JAVAにおけるSpring Aopの役割の詳細な説明 の前ですか、後ですか、そして何が実行されますか?これらはアドバイスによって指定されます。アドバイスには JAVAにおけるSpring Aopの役割の詳細な説明 つの種類があります。
Before (プレアドバイス) は対象のメソッドが呼び出される前に実行されます
After (ポストアドバイス) は対象のメソッドが呼び出された後に実行されます
After-returning (Return Notice) 対象のメソッドが正常に実行された後に実行されます
After-throwing (Exception Notice) 対象のメソッドが例外をスローした後に実行されます
Around (Around Notice) プレフィックスとpostfix
カットポイントの配置 通知と組み合わせて、どのメソッドをいつ、どこで実行するかを指定するアスペクトです。このアスペクトは Spring AOP で次のように定義されます:
@Aspect @Component public class UserAspect { @Before("execution(* com.aop.service.impl.UserServiceImpl.login(..))") public void loginLog(){ System.out.println("user login"); } }
アノテーション @Aspect を使用して、特定のクラスをアスペクトとして宣言します。このようにして、クラスの下のメソッドを水平関数ポイントとして宣言し、指定された位置に挿入できます。このポイントカットで実行式を使用して宣言します。形式は次のとおりです
最初の位置はメソッドの戻り値を指定し、* 記号は任意のタイプの戻り値を表し、次にクラスとメソッド名、* を表します。記号は、Any がこのクラスの任意のメソッドを意味することも表します。前の例では、メソッド名は login であり、このクラスのログイン メソッドを指定します。最後のパラメータはメソッド入力パラメータです。Java はオーバーロードをサポートしているため、このパラメータはオーバーロードをより正確に配置するのに役立ちます。 JAVAにおけるSpring Aopの役割の詳細な説明 つのドットはパラメータのタイプを表します。このように、実行式はプログラムに通知を実行する場所を指示します。 @Beforeなどのアノテーションで修飾されるメソッドが通知の内容、つまり何をするかを示します。
この時点で、Spring aopを使用することができますが、さらにJAVAにおけるSpring Aopの役割の詳細な説明つの注意点があります
アスペクトクラスをBeanとして宣言します
ポイントカットポイントで指定されたメソッドが格納されているクラスも春までに注射して効果を発揮します
以上がJAVAにおけるSpring Aopの役割の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。