본문 바로가기
Programming/Spring

[spring] AOP (Aspect Oriented Programming)

by NAMP 2016. 4. 21.

[spring] AOP (Aspect Oriented Programming)

AOP 개념

관점지향 프로그래밍

여러형태의 비즈니스 로직들이 있고, 매번 앞단, 뒷단에서 로그를 남기는 문장이 있는 경우
코드 중복 발생
코드 중복 회피를 위해 모듈화를 하고 호출하는 문장을 넣게 된다.

두 가지 개념

핵심 관심 (Core Concerns)
횡단 관심 (Crosscutting Concerns)

OOP 의 문제점

코드 중복 발생
모듈화 하지만, 연결고리 발생

  • 중복되는 코드
  • 지저분한 코드
  • 생산성의 저하
  • 재활용성의 저하
  • 변화의 어려움

EJB에서의 AOP

ApectJ

AOP 용어

조인포인트(JoinPoint)

포인트컷(PointCut) : 메소드선택 알고리즘

어드바이스(Advice) : 부가기능 (ex: log, 트랜젝션)

위빙 (Weaving)

애스팩트(Aspect) : Advice + PointCut

Spring AOP 특징

표준 자바 클래스로 작성
Runtime 시점에서의 Advice 적용
AOP 연맹의 표준 준수
메소드 단위 조인포인트만 제공 (단점이 될 수 있음)

Spring 에서의 AOP 설정

@Component 추가
스캔 추가

Spring AOP

Spring AOP 표현식

패턴 매핑

패턴 매핑 기본
클래스 지정
Modifier 지정
매개변수 지정
생성자 지정

'Programming > Spring' 카테고리의 다른 글

[spring] Annotation 기반 AOP 설정  (0) 2016.04.22
[spring] XML 기반 AOP 설정  (0) 2016.04.21
[spring] Annotation 기반 설정  (0) 2016.04.20
[spring] DI 관련 Source 내용  (0) 2016.04.20
[spring] 데이터베이스 연동  (0) 2016.04.19

댓글