팀 프로젝트를 하면서 작업한 aop 내용 정리!
공통적으로 사용하는 부가기능을 한 번에 적용
* CardService 하위에 있는 메서드 전체
@Pointcut("execution(* com.passion.teampassiontrelloproject.card.service.CardService.*(..))")
private void cardService() {}
* createColumns 메서드만
@Pointcut("execution(* com.passion.teampassiontrelloproject.column.service.ColumnsService.createColumns(..))")
private void createColumns() {}
@Around("cardService()") => cardService로 선언한 것만 해당됨
public Object executeAuthorityCard(ProceedingJoinPoint joinPoint) throws Throwable{
Long cardBoardId = (Long)joinPoint.getArgs()[1];
userCheck(cardBoardId);
return joinPoint.proceed();
}
프로젝트 때 만든 파일에는 Pointcut과 메서드가 너무 많았다.
(피드백 => aop 비지니스 로직을 남기고 중복되는 코드는 한번에 처리하는 것이기 떄문에 메인으로 필요한 것만 적용할 것)
두 개의 Entity_id를 받아와 데이터를 확인하는 것 하나였는데 각 service의 메서드의 양식이 조금씩 달라서 이렇게 작업이 된거 같다.
※ 메서드명이 중복되는 경우는 아래와 같이 묶어서 사용
com.sparta.myselectshop.controller.creat*
※ 동일한 예외처리가 필요한 부분에만 정리하여 사용(ex.update, delete 등)