본문 바로가기

좋아하는 것_매직IT/1.spring

16.Spring, 스프링MVC의 핵심개념 중 컨트롤러 레벨에서 공통적으로 특정로직을 적용하는 방법에 대해서 알아볼께요.

반응형

스프링MVC의 핵심개념 중 컨트롤러 레벨에서 공통적인 로직을 적용하려면 어떻게 해야 할까요?

그럼, @ControllerAdvice 어노테이션에 대해서 자세히 알아볼께요.

  • @ControllerAdvice 선언부

  • 그리고, 적용 범위에 대해서 간단하게 설명하자면,
    • 디폴트는, 모든 Controller에 적용되는 특징이 있습니다.
  • 하지만, 특정 Controller에 적용할 수 도 있습니다.
    • 그럼 어떻게 하면 될까요?
      • spring,io 페이지에서 예시를 가져와 봅니다

  • 설명
    • 첫번째는, @RestController 어노테이션을 사용한 모든 컨트롤러
    • 두번째는, 특정 패키지안의 모든 컨트롤러
    • 세번째는, 특정 클래스의 모든 컨트롤러

그럼, 간단한 예시를 통해서 설명해 볼께요.

  • 바인딩 설정( @InitBinder ) 예시
    • 보통 @InitBinder 어노테이션을 사용하면, 
      • Controller로 들어오는 요청에 대해 추가적인 설정을 할 수 있음.
      • 즉, 모든 요청전에 InitBinder를 선언한 메소드가 실행됨
    • 그리고, 스프링프레임워크에서의 바인딩이란 모델 클래스(오브젝트)의 프로퍼티(메서드 set)에 값을 넣는 것을 말함.
  • 예시

  • 설명
    • 폼 바인딩에 사용할 기본날짜 형식을 설정하는 예시임.

결론

  • 컨트롤러 레벨에서 공통적인 로직을 적용하가위해서 스프링은 @ControllerAdvice 어노테이션을 지원함.
  • @ControllerAdvice 어노테이션이 적용되는 범위는 디폴트로 모든 Controller에 적용되는 특징이 있지만, 설정을 통해서 특정 Controller를 지정할 수 있음.
  • 오늘도 컨트롤러 레벨에서 공통적인 로직을 적용하는 방법에 대한 마술(?) 한가지 획득완료! 감사합니다. ^^
300x250