AOP
基礎課程の金ヨンハンのスプリング講座を聞いて整理した内容ソース
コアビジネスロジックではなく、すべてのメソッドのコール時間測定など、共通の関心のある問題を追加する必要があります.
すべての方法の開始と終了に時間測定コードを追加する必要があります.これは時間がかかりすぎます.この場合、AOPが必要です.
AOPは,コア関心事項と共通管理事項を分けて開発した技術である.
上記の図に示すように、時間計測など共通の関心事については、AOPを使用して時間計測コードを分離して開発することができ、各方法の開始および終了に時間計測コードを追加するのではなく、AOPを使用して開発することができる.
アプリケーション
AOPが適用されると、メンバーコントローラからメンバーサービスが呼び出されると、プロキシメンバーサービスが呼び出され、ポイントが接続されます.プロセス()を呼び出すと、実際のmemberServiceが呼び出されます.
AOPが必要
コアビジネスロジックではなく、すべてのメソッドのコール時間測定など、共通の関心のある問題を追加する必要があります.
すべての方法の開始と終了に時間測定コードを追加する必要があります.これは時間がかかりすぎます.この場合、AOPが必要です.
AOPの適用
AOPは,コア関心事項と共通管理事項を分けて開発した技術である.
上記の図に示すように、時間計測など共通の関心事については、AOPを使用して時間計測コードを分離して開発することができ、各方法の開始および終了に時間計測コードを追加するのではなく、AOPを使用して開発することができる.
예제
@Component
@Aspect
public class TimeTraceAop {
@Around("execution(* hello.hellospring..*(..))")
public Object execute(ProceedingJoinPoint joinPoint) throws Throwable {
long start = System.currentTimeMillis();
System.out.println("START: " + joinPoint.toString());
try {
return joinPoint.proceed();
} finally {
long finish = System.currentTimeMillis();
long timeMs = finish - start;
System.out.println("END: " + joinPoint.toString()+ " " + timeMs +
"ms");
}
}
}
@Aspect
AOP機能が必要@Component
スプリング空席登録(通常は実際の動作ではConfigで登録されている)アプリケーション
@Around
の共通の注目点の位置を指定AOP挙動
AOP 적용 전 의존관계
AOP 적용 후 의존관계
AOPが適用されると、メンバーコントローラからメンバーサービスが呼び出されると、プロキシメンバーサービスが呼び出され、ポイントが接続されます.プロセス()を呼び出すと、実際のmemberServiceが呼び出されます.
AOP 적용 전 전체 그림
AOP 적용 후 전체 그림
Reference
この問題について(AOP), 我々は、より多くの情報をここで見つけました https://velog.io/@gusals/AOPテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol