[springAOP] 2. AOP의 용어 | springAOP의 특징 및 생성법

2024. 7. 30. 10:57· framework/spring AOP(관점지향)
목차
  1. 01. AOP의 용어
  2. 02. SpringAOP 변화
  3. 03. SpringAOP 특징
  4. 04. SpringAOP 생성법
반응형

01. AOP의 용어

  • JoinPoint : 언제 합쳐져서 실행할까?
    • 타켓메소드의 명령 실행 전? - before
    • 타겟메소드의 명령 실행후에 예외와 상관없이 무조건? after (일종의finally)
    • 타겟메소드의 명령이 정상적으로 실행된 후? - after-returning (일종의 try)
    • 타겟메소드의 명령 실행시 예외가 발생된 경우? - after-throwing (일종의catch)
    • 타겟메소드의 명령 실행 전과 후 둘다? - around
  • Pointcut : 어떤 클래스의 어떤 메소드에 널을까?
  • Advice 클래스 : 횡단코드만 작성된 클래스
  • Weaving : 핵심관심코드 + 횡단관심코드 합치는 작업
  • Aspect : 합친 결과물
  • Introduction : …

 

 

02. SpringAOP 변화

  • 스프링1 : 위에처럼 proxy 클래스를 직접 만들어줘서 해야함
  • 스프링2 : proxy 클래스를 스프링에서 제공해주므로, 개발자가 만들필요없이 xml파일에서 설정만 잘 하면됨 - 포인트컷언어 이용

 

 

03. SpringAOP 특징

  • 표준 자바 클래스로 작성됨
  • Runtime 시점에서 Advice 적용됨
  • AOP 연맹의 표준을 준수함
  • 메소드 단위 JoinPoint만을 제공함

 

04. SpringAOP 생성법

방법1. 💖스키마 기반의 AOP 이용하기

  • spring 설정파일 안에 Pointcut 정의하는 것이 가능함
  • Advice는 그대로 자바클래스로 만들어져서 사용 가능하며 이 때 Spring 설정용 XML은 반드시 Schema 방식이어야 함

방법2. 💛@AspectJ 어노테이션 이용하기

  • @AspectJ 어노테이션을 이용한 Aspect, Pointcut과 Advice의 정의는 AspectJ 5에 처음 소개된 기능으로 SpringAOP는 이것을 그대로 사용할 수 있음
  • @AspectJ를 사용하려면 먼저 Spring 설정파일에 AspectJ autoproxy 설정을 해야함

 

반응형

'framework > spring AOP(관점지향)' 카테고리의 다른 글

[springAOP] 6. 스키마기반의 AOP 만들어 사용하기 | ExecutionTimeApp프로그램  (0) 2024.07.31
[springAOP] 5. 스키마기반의 AOP 만들어 사용하기 | Advice클래스의 매개변수  (0) 2024.07.31
[springAOP] 4. 스키마기반의 AOP 만들어 사용하기 | Advice클래스  (0) 2024.07.30
[springAOP] 3. AOP 만들기 전 설정할 것  (0) 2024.07.30
[springAOP] 1. AOP의 개요 | OOP vs AOP  (0) 2024.07.30
  1. 01. AOP의 용어
  2. 02. SpringAOP 변화
  3. 03. SpringAOP 특징
  4. 04. SpringAOP 생성법
'framework/spring AOP(관점지향)' 카테고리의 다른 글
  • [springAOP] 5. 스키마기반의 AOP 만들어 사용하기 | Advice클래스의 매개변수
  • [springAOP] 4. 스키마기반의 AOP 만들어 사용하기 | Advice클래스
  • [springAOP] 3. AOP 만들기 전 설정할 것
  • [springAOP] 1. AOP의 개요 | OOP vs AOP
jeri
jeri
Weekly I learned
JERI LOGWeekly I learned
반응형
jeri
JERI LOG
jeri
전체
오늘
어제
  • 분류 전체보기 (336)
    • KNOU (0)
    • coding_test (71)
    • springboot (2)
    • work (9)
    • docker (3)
    • git (11)
    • network (12)
    • java (70)
      • java (9)
      • oop (12)
      • inheritance (12)
      • realization (7)
      • java.lang (8)
      • java.util & java.text (8)
      • java.awt & java.swing (4)
      • java.io (5)
      • java.net (5)
    • python (0)
    • sql (14)
    • jdbc (6)
    • web (32)
      • html (8)
      • css (8)
      • javascript (16)
    • servlet (9)
    • jsp (31)
    • framework (65)
      • mybatis (10)
      • spring (7)
      • spring IOC(제어의 역행) (8)
      • spring AOP(관점지향) (8)
      • spring DAO (2)
      • spring mvc (14)
      • spring mvc 웹사이트제작법 (16)
    • flutter (1)
    • 개발일지 (0)

블로그 메뉴

  • 홈

공지사항

인기 글

태그

  • 99클럽
  • TIL
  • 개발자취업
  • 오블완
  • 코딩테스트준비
  • 티스토리챌린지
  • 항해99
  • 회사

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
jeri
[springAOP] 2. AOP의 용어 | springAOP의 특징 및 생성법
상단으로
loading

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.