스프링 이전에 Servlet을 직접 사용할땐 URL마다 하나하나 만들어야하고
각각의 설정하기가 매우 복잡했다.
이것을 해결하는것이 Spring의 dispatcherServlet이다.
매번 반복작업하던 비생산적인 작업들을 스프링이 뒷단에서 직업해주고 있다.
HandlerMapping 으로 클라이언트가 서버에 요청할때 접근할 수 있게 해주고
HandlerAdapter로 요청에 맞는 기능을 찾아준다.
//스프링 내부 소스코드
//스프링이 구동될떄 초기에 여러 형태를 미리 준비해놓을 수 있다.
protected void initStrategies(ApplicationContext context) {
this.initMultipartResolver(context);
this.initLocaleResolver(context);
this.initThemeResolver(context);
this.initHandlerMappings(context);
this.initHandlerAdapters(context);
this.initHandlerExceptionResolvers(context);
this.initRequestToViewNameTranslator(context);
this.initViewResolvers(context);
this.initFlashMapManager(context);
}
또 한 여러 작업을 하고 클라이언트에게 다시 송출할때도
viewResolver로 보내준다.
viewResolver는 기본으로 제공해주지만 아래처럼 커스텀해서 사용할 수 있다.
//viewResolver 설정해서 간단하게 사용하기
@Configuration
@ComponentScan
public class OneServletWebConfig {
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix("/WEB-INF/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
}
요청을 받고 요청의 맞는 기능을 구현하고 형태에 맞게 화면에 전송하는 것을 다구현하지않고
스프링의 dispatcherServlet이 구현해준다.
'개발 소발 > 개발 Spring' 카테고리의 다른 글
Spring Bean,스프링 빈이란?기초 (0) | 2021.08.13 |
---|---|
스프링 웹 개발 기초 정적컨텐츠,MVC,API 란? (0) | 2021.08.09 |
Spring Environment 기초 사용방법 (0) | 2020.07.13 |
Spring Scope란? (0) | 2020.07.13 |
Spring Autowired와 ComponentScan이란 (0) | 2020.07.10 |