방명록
- [Spring] 스프링 입문 7) AOP2023년 10월 15일 23시 00분 24초에 업로드 된 글입니다.작성자: 민발자728x90
스프링 입문 - 스프링 부트 웹 MVC, DB 접근 기술
Session 7 AOP
1. AOP가 필요한 상황
1) AOP가 필요한 상황
회원가입과 같은 로직은 핵심 관심사항, 시간 측정과 같은 로직은 공통 관심 사항이라고 함
공통 관심 로직이 핵심 비즈니스 로직과 섞이면 유지보수가 어렵다.
공통 관심 로직을 별도의 공통 로직으로 만들기 매우 어렵고 로직을 변경할 때 모든 로직을 찾아가며 변경해야함
▶ 이러한 문제점을 해결하기 위해 AOP를 적용
2. AOP적용
1) AOP(Aspect Oriented Programming)
공통 관심사항과 핵심 관심 사항을 분리
2) 시간 측정 AOP 작성
@Aspect // AOP 적용 @Component // 스프링 빈으로 등록하기위해 componentScan방식 사용 public class TimeTraceAop { @Around("execution(* hello.hellospring..*(..))") // AOP를 어디에 적용할 것인지 타게팅 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"); } } }
3) 동작 방식
프록시 기술로 컨테이너에 가짜 멤버 서비스 빈을 만들어 진짜 멤버 서비스 앞에 등록
joinPoint.proceed()통해 실제 멤버 서비스를 호출할 수 있음
컨트롤러가 호출하는 것은 가짜 멤버 서비스
728x90'정리 > Spring' 카테고리의 다른 글
[Spring] 스프링 핵심 원리 기본편 3) 스프링 핵심 원리 이해2 - 객체 지향 원리 적용 (0) 2023.10.18 [Spring] 스프링 핵심 원리 기본편 2) 스프링 핵심 원리 이해1 (0) 2023.10.18 [Spring] 스프링 입문 6) 스프링 DB 접근 기술 (1) 2023.10.15 [Spring] 스프링 입문 5) 회원 관리 예제 - 웹 MVC 개발 (2) 2023.10.14 [Spring] 스프링 입문 4) 스프링 빈과 의존관계 (0) 2023.10.14 다음글이 없습니다.이전글이 없습니다.댓글