You are using an outdated browser. Please upgrade your browser to improve your experience.

12/18

스프링 배운다 하는 사람중에 100명도 모르는 스프링 지식 알려주시는중

image-20201218094827461

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()을 호출한다.

image

image

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이상 버전에서만 작동한다.