Section 1. Spring Boot AOP
1. AOP 개념
2. TimeTraceAop 생성
- @Aspect Annotation 지정
- @Around -타켓 메서드의 앞 뒤로 AOP 를 수행
- execution("AOP 를 적용시킬 메소드의 경로 및 이름")
- execute - 실제 AOP 구현 부분, joinPoint - AOP의 대상이 되는 타겟 메소드
- proceed () 메서드 - 실제 객체의 메서드를 호출
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2F6b3e38a2-a67a-4f79-9a0c-286d31db7b6f%2Fimage.png)
3. AOP 동작 원리
- 실제 클래스가 호출되는 것이 아닌 프록시 객체가 먼저 호출 받음
- 프록시 객체에서 AOP 수행 후 실제 객체의 메소드를 호출
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2F08823a02-8623-42f3-b52f-9a7e7c7ab2c4%2Fimage.png)
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2Fb750af44-b0fb-4220-82dc-362294e913f1%2Fimage.png)
4. 프록시 클래스 DI
- Service 객체에서 Repository 를 주입 받을 때 자동으로 프록시 클래스가 주입됨
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2F7b353e84-7a1e-4607-81c1-6a9420a6c8b7%2Fimage.png)
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2F4da21617-b6ba-4243-9531-b5591b44f521%2Fimage.png)