2021.01.26ログ-OP


AOP(Aspect Oriented Programming)


スプリングの核心概念の一つとして、アプリケーション間での汎用機能の再利用をサポートします.OPPという言葉を翻訳するのは、観点に向けたプログラミングです.自分の言語というより、既存のOOP言語への補完です.

OOPは、継承または委任の方法を使用して汎用機能を再利用するが、アプリケーション全体のすべての追加機能を継承または委任に変換することは困難である.だからこの問題を解決するためにAOPが現れた.
  • コア観点(ビジネスロジック)+横方向観点(トランザクション/ログ/セキュリティ/認証など)による興味分離
  • AOPのメリット

  • アプリケーションに分散された汎用機能は、1つの場所で
  • を管理する.
  • その他のサービスモジュールは、他の事項に関心を持つことなく、目的のみを満たすことができます.

    使用方法



    最初に見た@Aroundはadvacesです.前述したように、ヒントはspectが「何をする」「いつ」を意味する.この時点で,@Aroundは存在せず,5種類のタイプが存在する.@Before (이전):デバイスターゲットメソッドを呼び出す前にデバイス機能を実行@After (이후):ターゲットメソッドの結果にかかわらず(成功するかどうかにかかわらず)、ターゲットメソッドが完了するとデバイス機能が実行されます.@AfterReturning (정상적 반환 이후):ターゲットメソッドが結果値を正常に返した後にデバイス機能を実行する@AfterThrowing (예외 발생 이후):ターゲットメソッドが実行中に異常を放出した場合、デバイス機能を実行する@Around (메소드 실행 전후):ターゲットメソッド呼び出しの前後で、ヘルプデバイスがターゲットメソッドを迂回する
    たとえば、ターゲットメソッドの早期にメソッドを実行したい場合は、
    @Before("포인트컷 표현식")
    public void 어드바이스메소드() {
        ....
    }
    表に記入すればいいです.
    ここで注意すべき点は,@Aroundに対してprocess()メソッドを呼び出す必要があることである.プロセス()メソッドはターゲットメソッドを指すため、ターゲットメソッドを実行するにはプロセスメソッドを実行する必要があることを忘れてはいけません.