[イニシャル-SPring Boot]AOP
6905 ワード
1. AOP
1-1. AOPとは?
AOPは予測に向けたプログラミングの弱者であり,観点に向けたプログラミングと呼ばれている.観点ガイドは簡単に言えば,ある論理を基準として,それを核心観点,付加観点に分け,その観点を基準としてそれぞれモジュール化する.
ここで、モジュール化とは、ある共通の論理または機能を1つの単位に組み合わせることを意味する.
例えば、コア観点は最終的に私たちが応用したいコアビジネスロジックになります.
さらに、コアロジックを実行するためのデータベース接続、ログ記録、ファイルI/Oも含まれます.
AOPでは,各観点を基準として論理をモジュール化しているが,これはコードを部分的にモジュール化することを意味する.
このとき,ソースコードには他の部分のコードが繰り返し書き込まれていることがわかり,分散の注目点(Crosscutting Concerns)と呼ぶ.
AOPが1~2個必要
2.AOPの適用
2-1. TimeTraceAOPの作成
TimeTraceAop.javapackage com.rptp.rptpSpringBoot.aop;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;
@Aspect
@Component
public class TimeTraceAop {
@Around("execution(* com.rptp.rptpSpringBoot..*(..))")
public Object excute(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("Finish:" + timeMs);
System.out.println("Finish:" + joinPoint.toString());
}
}
}
@Aspect
AOPを適用するクラス
@Component
beanをスプリング容器に注入する
@Around("execution( com.rptp.rptpSpringBoot..(..))")
フォーカスレンズをAroundにセットしてから详しい内容を次回位置合わせします...
リファレンス
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/lecture/49600
AOPとは?https://engkimbs.tistory.com/746
Reference
この問題について([イニシャル-SPring Boot]AOP), 我々は、より多くの情報をここで見つけました
https://velog.io/@phjppo0918/初心-Spring-Boot-AOP
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
package com.rptp.rptpSpringBoot.aop;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;
@Aspect
@Component
public class TimeTraceAop {
@Around("execution(* com.rptp.rptpSpringBoot..*(..))")
public Object excute(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("Finish:" + timeMs);
System.out.println("Finish:" + joinPoint.toString());
}
}
}
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/lecture/49600
AOPとは?https://engkimbs.tistory.com/746
Reference
この問題について([イニシャル-SPring Boot]AOP), 我々は、より多くの情報をここで見つけました https://velog.io/@phjppo0918/初心-Spring-Boot-AOPテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol