AspectServiceBean 추가
parent
16e682896b
commit
a1c3594106
@ -0,0 +1,87 @@
|
|||||||
|
package cokr.xit.foundation.component;
|
||||||
|
|
||||||
|
import org.aspectj.lang.JoinPoint;
|
||||||
|
import org.aspectj.lang.annotation.After;
|
||||||
|
import org.aspectj.lang.annotation.AfterReturning;
|
||||||
|
import org.aspectj.lang.annotation.AfterThrowing;
|
||||||
|
import org.aspectj.lang.annotation.Aspect;
|
||||||
|
import org.aspectj.lang.annotation.Before;
|
||||||
|
|
||||||
|
/**Aspect 구현을 지원하는 ServiceBean.
|
||||||
|
* <p>다음 포인트컷에 해당하는 서비스와 컨트롤러의 메소드 앞뒤에 실행할 기능의 구현을 지원한다.
|
||||||
|
* <ul><li>서비스 - <code>execution(* cokr.xit..service.bean.*ServiceBean.*(..))</code></li>
|
||||||
|
* <li>컨트롤러 - <code>execution(* cokr.xit..*Controller.*(..))</code></li>
|
||||||
|
* </ul>
|
||||||
|
* @author mjkhan
|
||||||
|
*/
|
||||||
|
@Aspect
|
||||||
|
public abstract class AspectServiceBean extends AbstractServiceBean {
|
||||||
|
private static final String
|
||||||
|
SVC_POINT = "execution(* cokr.xit..service.bean.*ServiceBean.*(..))",
|
||||||
|
CNTR_POINT = "execution(* cokr.xit..*Controller.*(..))";
|
||||||
|
|
||||||
|
/**컨트롤러의 메소드 앞에 실행된다.
|
||||||
|
* @param joinPoint JoinPoint
|
||||||
|
*/
|
||||||
|
@Before(CNTR_POINT)
|
||||||
|
public void beforeController(JoinPoint joinPoint) {}
|
||||||
|
|
||||||
|
/**서비스의 메소드 앞에 실행된다.
|
||||||
|
* @param joinPoint JoinPoint
|
||||||
|
*/
|
||||||
|
@Before(SVC_POINT)
|
||||||
|
public void beforeService(JoinPoint joinPoint) {}
|
||||||
|
|
||||||
|
/**서비스의 메소드 정상 종료 후에 실행된다.
|
||||||
|
* @param joinPoint JoinPoint
|
||||||
|
* @param returned 메소드가 반환하는 값
|
||||||
|
*/
|
||||||
|
@AfterReturning(value = SVC_POINT, returning = "returned")
|
||||||
|
public void afterServiceReturn(JoinPoint joinPoint, Object returned) {}
|
||||||
|
|
||||||
|
/**서비스의 메소드 실행 중 오류가 발생했을 때 실행된다.
|
||||||
|
* @param joinPoint JoinPoint
|
||||||
|
* @param thrown 메소드 실행 중 발생한 오류
|
||||||
|
*/
|
||||||
|
@AfterThrowing(value = SVC_POINT, throwing = "thrown")
|
||||||
|
public void afterServiceThrow(JoinPoint joinPoint, Throwable thrown) {}
|
||||||
|
|
||||||
|
/**서비스의 메소드 정상/오류 종료 후에 실행된다.
|
||||||
|
* @param joinPoint JoinPoint
|
||||||
|
*/
|
||||||
|
@After(SVC_POINT)
|
||||||
|
public void afterService(JoinPoint joinPoint) {}
|
||||||
|
|
||||||
|
/**컨트롤러의 메소드 정상 종료 후에 실행된다.
|
||||||
|
* @param joinPoint JoinPoint
|
||||||
|
* @param returned 메소드가 반환하는 값
|
||||||
|
*/
|
||||||
|
@AfterReturning(value = CNTR_POINT, returning = "returned")
|
||||||
|
public void afterControllerReturn(JoinPoint joinPoint, Object returned) {}
|
||||||
|
|
||||||
|
/**컨트롤러의 메소드 실행 중 오류가 발생했을 때 실행된다.
|
||||||
|
* @param joinPoint JoinPoint
|
||||||
|
* @param thrown 메소드 실행 중 발생한 오류
|
||||||
|
*/
|
||||||
|
@AfterThrowing(value = CNTR_POINT, throwing = "thrown")
|
||||||
|
public void afterControllerThrow(JoinPoint joinPoint, Throwable thrown) {}
|
||||||
|
|
||||||
|
/**컨트롤러의 메소드 정상/오류 종료 후에 실행된다.
|
||||||
|
* @param joinPoint JoinPoint
|
||||||
|
*/
|
||||||
|
@After(CNTR_POINT)
|
||||||
|
public void afterController(JoinPoint joinPoint) {}
|
||||||
|
|
||||||
|
/**로그 메시지를 출력한다.
|
||||||
|
* @param str
|
||||||
|
* @param joinPoint JoinPoint
|
||||||
|
*/
|
||||||
|
protected void log(String str, JoinPoint joinPoint) {
|
||||||
|
log().debug(
|
||||||
|
"{}({}): {}",
|
||||||
|
str,
|
||||||
|
Thread.currentThread().getId(),
|
||||||
|
joinPoint.getTarget().getClass().getName() + "#" + joinPoint.getSignature().getName()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue