TIL)23.08.14(AOP)

주민·2023년 8월 14일
0

TIL

목록 보기
60/84

팀 프로젝트를 하면서 작업한 aop 내용 정리!

AOP란?

공통적으로 사용하는 부가기능을 한 번에 적용

사용 예제

  • Pointcut : 적용되는 대상
* 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 등)

0개의 댓글

관련 채용 정보