OP: Oriented Programming
프로그래밍 방법론은 중복을 해결하기 위해 점점 발전해왔다.
AOP(Aspect Oriented Programming) : 관심사의 분리!
개발자가 각자 관심사에만 따라서 개발. 핵심관심사(Core Concern)는 타겟으로, 부가 관심사(Cross-cutting Concern)는 advice로 만든뒤 타겟, 어드바이스를 pointcut을 기준으로 걸러낸다음 joinpoint에서 weave하는 것.
부가 관심사: 여러 모듈이 공통적으로 거쳐야하는 작업 (예: 로그, 인증, 보안, 트랜잭션 관리)
장점: OOP에서도 해결되지 않은 중복을 해결 가능
업무 로직이 실행될 때 (-> core concern, target)
언제, 어떤 파라미터로, 얼마만큼의 소요시간이 걸려서
실행되었는지 로깅해보자. (-> cross-cutting concern, advice)

이 조건에 맞는 객체는 모두 proxy 가 만들어지고, 그안에서 weaving됨.

이거 true하면 service의 인터페이스 대신 구현체 타입의 서비스도 사용가능.
원리: 중간에 CGLib(Code Generator Library) 동작함. => 인터페이스없이도 프록시 만들 수 있다 . but 부하 많이 걸림
around() advice는 이 안에서 타겟을 파라미터로 받아 사용해야한다. ProceedingJoinPoint 를 파라미터로 받는다.
AOP 방법론을 사용하면 advice, target 둘다 서로의 정보를 가지지 않고 결합력도 발생하지 않음.
'JAVA > Spring Framework' 카테고리의 다른 글
추상 클래스로 view 만들기, properties 파일 사용해 폴더 위치 지정하기 (0) | 2020.10.13 |
---|---|
알바 관리 메이븐 프로젝트에 Spring 적용하기 (0) | 2020.10.12 |
스프링 Spring 프레임워크 jUnit과 연동하기 (0) | 2020.10.12 |
자바 Spring 에서 serviceImpl NullPointerException 해결하기 (리스너 관련) (0) | 2020.10.09 |
스프링 하위 컨테이너 설정 xml (servlet-context.xml) (0) | 2020.10.09 |