Model View Controller의 약자이다.
스프링은 MVC 프레임워크를 지원한다.
스프링을 이용해서 웹 어플리케이션을 개발하는데 여러 의존이 필요하여 pom.xml에서 몇가지 의존을 설정해야한다.
javax.servlet-api, javax.servlet.jsp-api, jstl, spring-webmvc
스프링 MVC를 실행하는데 있어 최소한의 설정이 있다.
@Configuration
@EnableWebMvc
public class MvcConfig implements WebMvcConfigurer{
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
registry.jsp("/WEB-INF/view/", ".jsp");
}
}
@EnablerWebMvc 어노테이션은 스프링 MVC 설정을 활성화하고 스프링 MVC를 사용하느데 필요한 다양한 설정을 생성한다.
WebMvcConfigurer 인터페이스는 스프링 MVC의 개별 설정을 조정할 때 사용한다.
configureDefaultServletHandling() 메서드는 인터페이스에 정의된 메서드로 디폴트 서블릿과 관련된 설정을 조정한다.
configureViewResolvers() 메서드는 ViewResolver와 관련된 설정을 조정한다.
스프링 MVC가 웹 요청을 처리하려면 DispatcherServlet을 통해서 웹 요청을 받아야한다. 이를 위해 web.xml 파일에 DispatcherServlet을 등록한다.
@Controller
// Controller 어노테이션으로 스프링 MVC에서 컨트롤러로 사용한다.
public class HelloController {
@GetMapping("/hello") // 메서드가 처리할 요청 결로를 지정
public String hello(Model model,
@RequestParam(value = "name", required = false) String name) {
model.addAttribute("greeting", "안녕하세요, " + name);
return "hello";
}
}
위에서 컨트롤러를 작성했다면 이에 대한 Bean 객체를 생성해야 하기에 Config 클래스를 생성해 Bean으로 등록한다.