AOP란?
AOP(Aspect-Oriented-Programming)란 관점 지향적 프로그래밍으로, 어떠한 일련의 행동들을
공통기능과 핵심기능이라는 관점으로 나누어 본다는 의미이다.
즉, 어떠한 기능에서 공통적으로 존재하는 기능을 뽑아내어 반복적으로 재사용할수 있도록 모듈화 할수있다.
AOP 주요 용어
- Aspect : 공통기능(Class)
- Advice : Aspect의 기능 자체 (method)
- Jointpoint : Advice가 적용되는 대상으로 핵심기능.
- PointCut : 핵심기능에 실제로 advice가 적용된 부분
- weaving : advice를 핵심기능에 적용하는 행위
MainClass 에서 특정 기능을 호출하면, LogAop 라는 공통기능의 클래스(Aspect)가 핵심기능 Target에 Jointpoint(메소드)를 적용한다.
XML 기반의 AOP 구현
1. pom.xml 디펜던시 추가(aop,cglib)
2. 핵심기능 Class 인 LogAop1
3. Application Context .xml 파일 설정
- LogAop1 공통기능(Aspect) 클래스 빈 등록
- <aop:config> 태그를 통해 aop 설정
- <aop:aspect> : 공통 기능 정의
- <aop:pointcut> :expression: 핵심 기능 적용 범위
- <aop:around> : 메소드 실행 전/후 및 exception 발생시 advice(핵심기능) 실행
4. MainClass 실행
어노테이션을 이용한 AOP 구현
<기존의 xml을 이용한 AOP 구현 파일과 동일>
1. Application Context xml 파일 설정
<aop:aspectj-autoproxy> 태그 추가
2. LogAop Class(Aspect) 클래스 파일에 해당 기능들에 어노테이션 설정
'Category > Spring' 카테고리의 다른 글
[Spring] 공공데이터 사용법, XML 파일 읽기 (0) | 2023.12.28 |
---|---|
[Spring] 스프링의 기본 xml파일들 (0) | 2023.12.22 |
[Spring] 외부 properties 파일을 이용한 Bean 설정 (0) | 2023.12.20 |
[Spring] 어노테이션을 이용해서 Bean 객체 생성하기 (0) | 2023.12.18 |
[Spring] 스프링 컨테이너 (0) | 2023.12.15 |