스프링 MVC 제어하기
스프링은 MVC 패턴으로 동작한다.
MVC는 Model View Controller 로
사용자가 특정 URI로 요청하면
앞에서 컨트롤러(디스패처 서블릿)가 해당 요청을 처리할 수 있는 컨트롤러로 요청을 보낸다.
컨트롤러는 사용자가 요청한 데이터를 키:밸류의 맵의 형태(모델)로 생성한다.
이 모델을 다시 앞 컨트롤러로 보낸 뒤
앞 컨트롤러는 뷰가 있는 곳(뷰 리졸버)에서 해당 모델에 맞는 뷰를 가져와서
최종적으로 사용자에게 뷰를 전달하게 된다.
컨트롤러는 모델을 반환하나... 코드에선 이를 컨트롤러에서 만들진 않는다.
서비스에는 사진과 같이 비즈니스 로직(데이터를 처리하는 로직)이 들어간다.
컨트롤러에서 이 로직이 중복되어 사용될 수 있으므로 서비스 레이어를 두고
거기서 또 중복되는, 데이터베이스 접근 로직이 있는 레포지터리 레이어를 두는 것이다.
레포지터리는 엔터티나 DAO로 접근한다.
이 과정은 다음과 같이 자세히 나타낼 수 있다.
여기서 필터나 인터셉터를 건드려주면 사용자의 요청을 처리하기 전/후의 작업을 자동화할 수 있다.
스프링의 설정을 건드리려면 @Configuration
,
그중에서도 MVC를 건드리려면 WebMvcConfigurer
를 구현해준다.
아래는 인터셉터를 새로운 것으로 추가해주는 코드이다.
@Configuration
public class WebMvcConfiguration implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LoggerInterceptor());
}
}
핸들러 인터셉터는 세가지 메소드를 제공한다.
preHandle, postHandle, afterCompletion
afterCompletion 은 뷰가 전달된 이후에 호출된다.
MVC를 수정하는 방법엔
WebMvcConfigurer를 구현하는 게 있고
WebMvcConfigurationSupport 를 상속받는 방법이 있다.
WebMvcConfigurer를 쓰면 EnableWebMvc 어노테이션을 달 필요가 없다.
공식문서에선 오히려 달지 말라고 이야기 한다.
Configuration 클래스에 EnableWebMvc 어노테이션을 달면
WebMvcConfigurationSupport 가 자동으로 딸려와서 스프링 MVC 설정을 불러올 수 있다.
Author And Source
이 문제에 관하여(스프링 MVC 제어하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jkjan/스프링-MVC-제어하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)