본문 바로가기

spring/AOP

AOP 구현하는 방법3 : 어노테이션을 이용한 방법 할말이 읎다 ==============================================================================================================================================설정파일 ============================================================================================================================================== package aop3_anno; import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.Aft.. 더보기
AOP 구현하는 방법2 : aop namespace를 이용한 방법 설정파일에서 aop:pointcut 의 expression 속성에 명시되어 있는 표현식 조건에 맞는 메소드가 실행됬을 경우 loggingAspect 클래스의 logging 메소드가 실행된다. 인터셉터한 것이라고 생각하면된다. loggingAspect 클래스의 logging 메소드의 리턴값은 Object 여야하고 ProceedingJoinPoint 타입의 인자를 하나가져야 한다. Object object = joinPoint.proceed(); joinPoint는 logging 클래스의 인자인 ProceedingJoinPoint 타입의 변수이다. 위의 명령문으로 원래 실행될 메소드를 호출하며 이 명령문 전에 호출된 명령은 선처리되며 이 명령문 후에 호출된 명령은 후처리 된다. ================.. 더보기
AOP 구현하는 방법1 : Proxy를 통한 간접 접근 상황 핵심 로직 클래스인 MessageImpl class의 sayHi() 메소드가 실행되기 전과 이후에 어떤 모듈을 실행해야만 한다. AOP를 이용하여 처리한다. Proxy를 통한 간접 접근 스프링 설정파일을 보면 bean태그가 id="hiAdvisor" 인 놈이 있다. org.springframework.aop.support.DefaultPointcutAdvisor 클래스의 객체를 생성한 것인데 property로 advice와 pointcut을 가지고 있다. 예제에서 설정파일을 보면 property태그의 name이 advice와, pointcut 인 놈들을 property로 가지고 있는데 name이 advice인 놈에게는 실행할 모듈을 지정해 놓고(무엇을 할지 : 예제에서는 LoggingAdvice c.. 더보기
AOP 용어 Spring을 사용한 AOP에서는 다음과 같은 용어를 이해하는 것이 매우 중요하다 ●Joinpoint : ‘클래스의 인스턴스 생성 시점’, ‘메소드 호출 시점’ 및 ‘예외 발생 시점’ 과 같이 어플리케이션을 실행할 때 특정 작업이 시작되는 시점을 의미. ●Advice : 조인포인트에 삽입되어 동작할 수 있는 코드를 말함. ●Pointcut : 여러 개의 조인포인트를 하나로 결합한(묶은) 것을 말함. ●Advisor : 어드바이스와 포인트컷을 하나로 묶어 취급한 것을 말함. ●Weaving : 어드바이스를 핵심 로직 코드에 삽입하는 것을 말함. ●Target : 핵심 로직을 구현하는 클레스. ●Aspect : 여러 객체에 공통으로 적용되는 공통 관점 사항을 말함. 더보기
AOP 구조를 이해하는 예제3(어노테이션을 이용한 예제) applicationContext.xml =========================================================================================================================================================DemoService.java package com.demo3.core; public interface DemoService {public void save(String value);public void write();}===================================================================================================.. 더보기
AOP 구조를 이해하는 예제2(MethodInterceptor) applicationContext.xml =========================================================================================================================================================DemoService.java package com.demo2; public interface DemoService {public void setValue(String value);public String getValue();}===============================================================================================.. 더보기
AOP 구조를 이해하는 예제1 applicationContext.xml .*write.*.*set.* demoAdvisor1demoAdvisor2 =========================================================================================================================================================DemoService.java package com.demo1; //AOP는 interface기반으로 작동하므로 interface를 만들어준다.public interface DemoService {public void setValue(String value);public void write();}==============.. 더보기