스프링의 DI가 클래스간의 관계에서 결합도를 낮추는데 있다면 AOP는 공통관심사의 분리에 있다.책에서는 횡단관심사(cross-cutting concerns) 의 분리로 나와있지만 한글말이 더 어려워 보인다.쉽게 말해 클래스들이 공통으로 갖는 기능이나 절차,서비스등을 한데 묶어 따로 빼내갰다는 취지이다.
쉬운예로 로그인,트랜잭션,보안,캐싱같은 비즈니스 들이 있다.
AOP의 장점
1. 전체 코드 기반에 흩어져 있는 관심사항이 하나의 장소로 응집된다는 점
2. 여타 서비스 모듈이 자신의 주요 관심사항(또는 핵심 기능)에 대한 코드만 포함하고 그 외의 관심사항은 모두 애스펙트로 옮겨지므로 코드가 깔끔해진다는 점.
AOP용어
1.어드바이스(advice)
무엇에 대한 기능 정의와 언제할지 정의.
before, after, after-returning, atfet-throwing, around
2.조인포인트
애플리케이션 실행에 애스펙트를 끼워 넣을 수 있는 지점.어떤 지점이나 기능중에 어드바이스를 적용해야되는지 포인트,위치를 지정
3.포인트컷
애스펙트가 어드바이스할 조인포인트의 영역을 좁히는일을 한다.어디서 어드바이스를 할지 정의
4.애스펙트
어드바이스와 포인트컷을 합친것.
5.인트로덕션
기존 클래스에 코드 변경 없이도 새 메소드나 멤버 변수를 추가하는 기능.
6.위빙
타깃 객체에 애스펙트를 적용해서 새로운 프록시 객체를 생성하는 절차.
출처 : http://blog.naver.com/namoyo?Redirect=Log&logNo=110149558381
[출처] [4장 애스펙트 지향 스프링] AOP|작성자 아유
'개발이슈 > JAVA' 카테고리의 다른 글
Java 8의 람다와 메서드 참조를 이용한 회원 검색 기능 개선 (0) | 2023.12.06 |
---|---|
GroupingBy 분기별 합계 구하기 (0) | 2023.01.02 |
Java8 Comparator 두개 이상 비교 (0) | 2023.01.02 |
트위터 ssl 인증서 keytool 사용하여 자바에 추가 하는 방법 (0) | 2014.04.01 |
TDD (0) | 2014.03.20 |