A, servlet2 (옛 스프링 MVC)
- 프로필 :
- web.xml의 : 주요 구성 항목 시작 항목
- 응용 프로그램의 context.xml : 메인 스캔 패키지 구성 항목, 콩의 모든 종류의 트랜잭션 관리
- springMVC.xml : ViewResolver를 스캔 주요 구성 컨트롤러 패키지 파라미터 파서
- 과정을 시작합니다
- 각 프로젝트는 초기화 스프링 컨텍스트 시작에 봄, 초기화 과정이 아닌 웹 프로젝트의 프로그램 기본 방법의 맥락에서 트리거 할 수 있어야합니다.
- 입구 웹 컨테이너에서 프로젝트의 시작부터, 개발자가 직접적으로 트리거 초기화 스프링 컨텍스트, 우리는 용기와 강한 협회의 프로세스 초기화 과정을 시작해야 할 수 있도록.
- 컨테이너가 시작 구문 분석 web.xml 파일로드로 인해, 그것은 정확하게 web.xml의 관계를 구축 할 수있는 좋은 장소입니다. ContextLoadListener 포인트 구성 web.xml에 컨테이너를 청취 스프링 컨텍스트를 초기화하는 것으로 시작이 연결된다.
- DispatcherServlet을 글로벌 핵심 컨트롤러이기 때문에, 모든 요청은 자신의 개시시기를 구성 할 필요가 있으므로, 기본은 요청의 첫 번째 인스턴스 그것에서 오는, 절편 그것을 할 필요가있다.
- 그러나,이 컨테이너 초기화를 시작하도록 구성 할 수 있습니다, 초기화 과정의 DispatcherServlet springMVC.xml는 매핑 컨트롤러, 뷰 해상도, 그래서 매개 변수 분석을 완료, 구성 파일을 읽을 수 있습니다.
두, servlet3
- Servlet3는 클래스 경로에서 현재 프로젝트는, META-INF는 / 서비스 / javax.servlet.ServletContainerInitializer 구성 파일, 파일 이름 ServletContainerInitializer는 전체 클래스 구현 클래스가 쓴 경우, 클래스 메소드 때 컨테이너를 시작합니다 onStartup 달성하는 것을 제공 그것은이라고합니다. 봄 ServletContainerInitializer 인터페이스 클래스 org.springframework.web.SpringServletContainerInitializer 배치된다.
- 상기의 스프링이 주석에 기초 ServletContainerInitializer @HandlesTypes을 (WebApplicationInitializer.class) 달성하기 위해 제공되고, 주석 브래킷 WebApplicationInitializer 인터페이스 어셈블리 프로젝트 구현하는 모든 클래스들은 SpringServletContainerInitializer의 onStartup 방법 이송 세트 인 것 통화의 경우 11 onStartup 방법 으로서는, WebApplicationInitializer 클래스 인터페이스가 제공된다 SpringBoot SpringBootServletInitializer 이때 항목에 스프링 contextdispatcherServlet 초기화 동작은,이 방법에 따라서 치환 web.xml에 배치 될 수있다.
- @Configuration 주석으로 필요 스프링 애플리케이션의 context.xml 빈 용기에 붓고 구성해야만하고 대응하는 XML 구성 파일을 교체 하였다.
- 주요 기능은 시작 @SpringBootApplication 주석 클래스 @ComponentScan 통합하기 때문에, 모든 기본 시작 클래스 현재 클래스 패킷 및 서브 패킷의 기능 springMVC.xml 치환되는 스캔 @Controller 클래스를 갖는 주사 springMVC.xml이고 가.
세 가지, 봄 부팅 부팅
- 스프링 부팅 시작 클래스의 주요 기능을 수행 할 때, 그것은 톰캣 객체를 인스턴스화 한 다음 개체 톰캣 일련의 메서드를 호출합니다
Tomcat tomcat = new Tomcat();
tomcat.addWebApp("/", "D:/app/"); //调用此方法是将项目当做web项目放入容器,同时也会触发ServletContainerInitializer的onStartup方法
tomcat.setPort(8080);
tomcat.start();
tomcat.getServer().await(); //启动线程,阻塞等待
- 주석을 추가 할 수 @ResponseBody 방법은, 그렇지 않으면 파서를 보려면 메시지 변환 프로세스에 반환 값을 나타냅니다.
@Configuration
public class GsonMessageConverterConfig implements WebMvcConfigurer {
@Override //自定义消息解析器
public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(new GsonHttpMessageConverter());
}
@Override //自定义视图解析器
public void configureViewResolvers(ViewResolverRegistry registry) {
registry.jsp("/", ".jsp");
}
}