진짜 개발자
본문 바로가기

FrameWork/Spring MVC

SpringMVC - Spring MVC 설정 - 1 (자주 설정되는 것들)

728x90
Spring MVC 설정 첫번째 포스팅입니다

Spring MVC 설정 첫번째 포스팅입니다. SpringMVC 프로젝트를 시작하기전에 자신이 무엇을 설정해야하는지를 알아야하고, 그것을 실행하기 위해서는 설정하는 방법을 알아야합니다.

설정하는 벙법은 이전 포스팅인 SpringMVC 동작원리 - 8(https://galid1.tistory.com/532)에서 SpringMVC를 이용할때 간편히 설정하는 방법을 알아보았습니다. 해당 포스팅 참조해주시면 될것 같습니다.

이번 시간에는 개발자가 SpringMVC를 사용하며 설정해야할 수도 있는 것들에 대해서 알아보겠습니다.

 

 

설정해야할 수도 있는 것들

Spring MVC프로젝트를 진행하며 개발자가 설정을 해야할 수도 있는 것들에 대해서 알아보겠습니다. 해야할 수도 있다는 것은 꼭 필요하다는 것은 아닙니다. 왜냐하면 이전 포스팅에서 말씀드렸듯이, DispatcherServlet에서는 웹을 개발하기 위해 필요한 Bean들을 자동으로 등록을하기 때문입니다. 다만 편의상 설정을 해주어야 할 수도 있다는 것들입니다.

 

예를들어, InternalResourceViewResolver의 경우 요청에 대한 View를 렌더링하는 역할을 합니다. 기본설정의 경우에는 prefix, suffix가 아무런 값이 지정되어있지 않습니다(Spring MVC 기준). 하지만 우리는 편의상 Controller에서 응답할 view의 이름만을 return하도록 하기 위해 InternalResourceViewResolver의 prefix, suffix 설정을 해줄 것입니다. 이처럼 편의를 위해 개발자가 설정을 해야할 수도 있는 것들에 대해 알아보도록 하겠습니다. (아래에서 설명드릴 대부분의 설정들은 SpringBoot에서는 대부분 자동으로 지원 되는 것들입니다.)

 

1. ViewResolver

사용자에게 응답할 View를 렌더링하는 역할을 하는 것으로, prefix, suffix를 추가함으로써, Controller에서는 view의 이름만을 retrun하여 원하는 view를 찾아주도록할 수 있습니다.

 

 

2. Formatter , Converter

formatter, converter는 사용자의 요청을 적절한 객체로 자동으로 상호변환할 때 사용됩니다.

 

 

3. ResourceHandler

ResourceHandler의 경우 사용자에게 정적 자원들을 반환해주도록 하는 handler 입니다. 이 handler를 통해 /static/* 경로에 존재하는 파일들을 사용자에게 전달할 수 있으며, 별도의 정적자료의 경로를 추가할 수도 있습니다.

 

 

 4. HttpMessageConverter(HandlerAdapter)

HandlerAdapter에는 여러가지 설정을 할 수 있지만 그 중 사용자에게 응답할 메시지로 변환하는 HttpMessageConverter를 설정해야하는 경우가 있습니다. 예를 들어 응답메시지를 json형식으로 변환하여 전달하는 경우등이 있습니다.

 

 

5. HandlerInterceptor

HandlerInterceptor의 경우 preHandle(), postHandler(), afterCompletion() 을 구현하여, 사용자의 요청에 따라 handler에게 요청을 전달하기 전요청을 처리한 후요청에 대한 모든 처리가 완료된 후에 별도의 처리과정을 추가할 수 있습니다.

 

 

6. MultipartResolver

DispatcherServlet의 구성요소 포스팅(https://galid1.tistory.com/528?category=783055) 에서 알아보았듯이, Spring Boot를 사용하지 않는이상 File Upload 요청에대한 처리를 하기위해서는 MultipartResolver를 Bean으로 등록해주어야 합니다.


 위에서 소개드린 각각의 설정들을 앞으로의 포스팅에서 하나씩 다루도록 하겠습니다.