스프링 배운다 하는 사람중에 100명도 모르는 스프링 지식 알려주시는중
src-09
배아파 김치 때문에
FrontController역할을 하는 dispatcher서블릿
서블릿 컨테이너가 시작될 때 보고 받는 객체 구동 순서: 1) 서블릿 컨테이너를 시작한다. 2) 서블릿 컨테이너는 /WEB-INF/lib/*.jar 파일을 뒤진다. 3) /META-INF/services/javax.servlet.SerlvetContainerInitializer 파일을 찾는다. 4) 그 파일에서 ServletContainerInitializer 구현체를 알아낸다. 5) 해당 구현체의 인스턴스를 생성한 후 onStartup()을 호출한다. 6) 만약 그 구현체가 보고 받고자 하는 타입이 있다면 해당 클래스를 찾아 onStartup()을 호출할 때 파라미터로 넘겨준다.
WebApplicationInitializer 호출 과정 1) 서블릿 컨테이너(예: 톰캣 서버)를 시작한다. 2) spring-web-x.x.x.RELEASE.jar 파일에서 /META-INF/service/javax.servlet.SerlvetContainerInitializer 파일을 읽는다. 3) 이 파일에 등록된 클래스의 인스턴스를 생성한다. => SpringServletContainerInitializer 인스턴스 생성 4) SpringServletContainerInitializer 객체에 대해 onStartup()을 호출한다. => 호출할 때 WebApplicationInitializer를 구현한 클래스 목록을 넘겨준다. 5) SpringServletContainerInitializer는 WebApplicationInitializer 구현체의 인스턴스를 만들고, onStartup()을 호출한다.
spring-webmvc src-12, 13 admin이랑 일반서블릿 분리하기
마지막 src-14번
이전까진 다 설정이였다. 이제 페이지 컨트롤러에 리턴값을 다루는 다양한 방법에 대해 공부할수있음…
상수를 정의하는 문법 : enum
enumalation
public enum RequestMethod {
GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS, TRACE
}
// @GetMapping(headers="name")
@RequestMapping(method = RequestMethod.GET, headers = "name")
위 두 annotation은 같은 뜻인데, 위 애노테이션은 스프링 4.0이상 버전에서만 작동한다.