Spring AOP 개요
● Application을 두가지 관점에 따라 구현
-핵심 관심 사항(core concern)
-공통 관심 사항(cross-cutting concern)
● 기존 OOP 보완
-공통 관심 사항을 여러 모듈에서 적용하는데 한계가 존재
-AOP 는 핵심 관심 사항과 공통 관심 사항 분리하여 구현
핵심 관심 사항과 공통 관심 사항에 대해 예제를 통해 쉽게 이해 해보자
예제출저 : 여름나라겨울이야기 라는 tistory블로그에서 다룬 예제를 이름만 바꿔서 사용해 보았습니다.
Dog와 Cat 클래스를 생성해서 각각 하루일과를 수행하는 기능을 구현할것이다.
dog
주인을 기다린다.
주인이 집에 들어온다. before : 핵심 관심 사항 수행 전 해야되는 기능
꼬리를 흔들며 반긴다. ←핵심 관심 사항
밥을 준다. after-returning : 핵심 관심 사항 무사수행 후 하는일
밥을 맛있게 먹는다. after : 핵심 관심 사항 끝나면 무조건
예외 상황 : 밤새 운다 after-throwing : 핵심 관심 사항 수행중 문제 발생시 수행
cat
주인을 기다린다.
주인이 집에 들어온다. before : 핵심 관심 사항 수행 전 해야되는 기능
들어오던지 말던지 신경 안쓴다. ←핵심 관심 사항
밥을 준다. after-returning : 핵심 관심 사항 무사수행 후 하는일
밥을 맛있게 먹는다. after : 핵심 관심 사항 끝나면 무조건
예외 상황 : 밤새 운다 after-throwing : 핵심 관심 사항 수행중 문제 발생시 수행
dog만 하는 특이한 기능(꼬리를 흔들며 반긴다.), cat만 하는 특이한 기능(들어오던지 말던지 신경 안쓴다.) 이게 핵심 관심 사항이다.
이걸 클래스로 넣어보면
dog
package aop1;
public class Dog {
public void doSomething(){
System.out.println("주인을 기다린다");
System.out.println("주인이 집에 들어온다");
try
{
System.out.println("꼬리를 흔들며 반긴다");
System.out.println("밥을 준다");
}
catch(Exception e)
{
System.out.println("밤새 운다");
}
System.out.println("밥을 맛있게 먹는다");
}
}
cat
package aop1;
public class Cat {
public void doSomething(){
System.out.println("주인을 기다린다");
System.out.println("주인이 집에 들어온다");
try
{
System.out.println("들어오던지 말던지 신경안쓴다");
System.out.println("밥을 준다");
}
catch(Exception e)
{
System.out.println("밤새 운다");
}
System.out.println("밥을 맛있게 먹는다");
}
}
출처 : 삼성SDS멀티캠퍼스
강사 : 홍승길
Email : iccack70@gmail.com
'[Spring]' 카테고리의 다른 글
[Spring]11월 11일 Spring AOP용어, AOP 구현 방법, AOP 설정 태그 (0) | 2015.11.11 |
---|---|
[Spring]11월 10일 Spring AOP 프록시패턴(Proxy pattern) 적용 예제 (0) | 2015.11.10 |
[Spring]11월 9일 에노테이션(annotation)기반 생성자,설정자를 사용한 의존관계 설정 방법 (0) | 2015.11.10 |
[Spring]11월 9일 초기화메소드와 소멸메소드 지정하는 방법 (0) | 2015.11.10 |
[Spring]11월 9일 스프링 설정 파일을 이용한 객체간의 의존관계 설정 (0) | 2015.11.10 |