aop 어노테이션

Untitled

package shop.mtcoding.blog._core.errors;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component;

@Aspect // AOP 등록
@Component // IoC에 등록
public class MyValidationHandler {

    // Advice (부가 로직 hello 메서드)
    // Advice 가 수행될 위치 == PointCut
    @Before("@annotation(org.springframework.web.bind.annotation.GetMapping)")
    public void hello(JoinPoint joinPoint) {
        System.out.println("MyValidationHandler : hello_______________________");
    }
}

get 매핑일 때만 실행하라고 걸어둔것

비포는 매서드 시작직전 애프터는 끝나고 나서

유효성 검사를 위해 사용한다

고로 겟 매핑이 아니라 바디데이터가 있는 포스트 매핑에서만 사용한다

유효성 검사가 필요한페이지는 포스트 빡에 없다

그래서 바꿔줌

Untitled

보더 컨트롤러 이부분 수정

@PostMapping("/api/boards")
public ResponseEntity<?> save(@Valid @RequestBody BoardRequest.SaveDTO reqDTO, Errors errors) {
    User sessionUser = (User) session.getAttribute("sessionUser");
    BoardResponse.DTO respDTO = boardService.글쓰기(reqDTO, sessionUser);
    return ResponseEntity.ok(new ApiUtil(respDTO));
}

보더 saveDTO 수정