달력

10

« 2017/10 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  
  •  
2011.07.21 19:22

Spring Aspect 예시 Tips2011.07.21 19:22

AOP를 거의 사용할 일이 없지만, 최근 프로젝트에서, 사용할일이 생겼다. 단순하게 사용법을 아는 것과 실무에서 여러가지 필요한 옵션은 다를수 있다. 웹과 관련된 옵션이 필요하다면, 인터셉터를 활용하는 것이 더 좋다.


1)  Around 예시

@Around(value="savePointer() && updatePointer() && removePointer && args(dto)", argNames="pjp, dto")
public Object execute(ProceedingJoinPoint pjp, Object dto) throws Throwable {
System.out.println("[@Used] Start...");
Object proceed = pjp.proceed(new Object[] { dto });
process(pjp.getTarget().toString(), proceed.getClass().getSimpleName(), dto);
System.out.println("[@Used] proceed:"+proceed.toString());
System.out.println("[@Used] End...");
return proceed;
}



2) AfterThrowing 예시

@AfterThrowing(pointcut="testPointer() && args(dto)",throwing="ex", argNames="ex, dto")
public void execute(Exception ex, Object dto){
System.out.println("[@Service] Start...");
process(ex, dto);
System.out.println("[@Service] End...");
         

신고
TAG ,
Posted by summerwars


티스토리 툴바