logger찍기 위하여
private Logger log = LoggerFactory.getLogger(getClass());로 사용한던것을
클래스 레벨의 @Slf4j 로 대체 가능
IOC : 제어의 역전
DI : 의존주입
POJO : 가장 단순한 형태의 자바클래스를 가지고 프레임워크를 사용할 수 있음
PSA : 추상화 레이어를 통해 구체화된 라이브러리를 제어할 수 있음(slf4j-log4j)
AOP : 관점지향 프로그래밍(OOP와 대비되는 개념이 아니라 OOP와 같이 사용하면 모듈화를 극대화로 끌어올려줌)
관점별로 분리하여 주업무와 보조업무를 완벽하게 분리하여 모듈형식으로 삽입하여 실행
AOP
공통되는 부분을 따로 빼내어 필요한 시점에 해당 코드를 추가하여 사용
무엇을 어디에 삽입해서 사용할 것인가 파악하기
Aspect
클래스 단위로 Aspect를 얘기함
Advice가 몸담고 있는 클래스를 Aspect라고 함
한개 이상의 Pointcut과 Advice의 조합으로 만들어짐
Joinpoint
찔러넣을 수 있는 모든 곳을 말함
대표적인 조인포인트
- 메소드가 호출되는 부분 또는 리턴되는 부분
- 인스턴스가 만들어지는 지점
- 예외가 던져지는 지점
- 클래스가 초기화 되는 곳(별도의 init메소드가 호출될때)
Pointcut
특정 Joinpoint를 딱 골라내는 문법을 Pointcut이라고 함
joinpoint선정룰과 같은 개념
Advice
보조업무를 Advice라고 함
각 조인포인트에 삽입되어져 동작할 수 있는 코드
주로 메소드 단위로 구성된 어드바이스는 포인트컷에 의해 결정된 모듈의 조인포인트에서 호출되어 사용
Advice는 Joinpoint와 결합하여 동작하는 시점에 따라 5개로 구분된다.
1. Before Advice : Joinpoint 전에 실행
2. Around Advice : Joinpoint 앞과 뒤에서 실행
3. After Returning Advice : Joinpoint 메소드가 리턴될시 실행. Return된 object에 접근가능
4. After Advice : Joinpoint후에 무조건 실행됨(예외발생시에도 실행. finally와 유사함.)
5. After Throwing Advice : Jointpoint 메소드 실행중 예외발생시 실행
Weaving
Pointcut에 의해서 결정된 Joinpoint에 지정된 Advice 를 삽입하는 과정
의존라이브러리 추가시 알아서 실행됨
weaving하는 3가지 방법
1. 컴파일시에 Weaving하기
2. 클래스 로딩 시에 Weaving하기
3. 런타임시에 Weaving하기
AOP를 두가지 방식으로 처리
1. xml로 선언
2. annotation을 이용하여 처리할 수 있음(직관적이고 쉬움)
'프로그래밍 > Spring' 카테고리의 다른 글
10.26(RequestParam, Pointcut, rowbounds, formatDate) (0) | 2020.10.26 |
---|---|
10.23(AOP, Weaving) (0) | 2020.10.23 |
10.21(query & resultset logging) (0) | 2020.10.21 |
10.20(Model, log4j, Handler Interceptor) (0) | 2020.10.20 |
10.19(spring-security, 암호화 처리, 회원 탈퇴) (0) | 2020.10.19 |