똑같은 삽질은 2번 하지 말자
Spring Boot 개념다지기 No.3 본문
일 끝나고 좀 쉬다가 현재 시간 오후 11시30분 고고슁이이이잉
하나라도 듣자아아아아아아아!!
내장 웹 서버 이해
Spring Boot에는 톰캣이 내장 되어 있다.(알고있었다 이정도는)
Spring Boot가 대신해주는 작업은 .
톰캣 객체 생성
포트 설정
톰캣에 컨텍스트 추가
서블릿 만들기
톰캣에 서블릿 추가,
컨텍스트에 서블릿 맵핑,
톰캣 실행 및 대기
org.springframework.boot.autoconfigure.web.servlet 안에있는
-class ServletWebServerFactoryAutoConfiguration (서블릿 웹 서버 생성)
그 안의 TomcatServletWebServerFactoryCustomizer (서버 커스터마이징)
-class DispatcherServletAutoConfiguration -> 서블릿 만들고 등록
DipatcherServlet은 서블릿형식으로 한다고하면 무조건 쓰게되는 친구라서
따로 떨어져있는거다. 서블릿 컨테이너는 바뀔수 있지만, 디스패쳐 서블릿은 안바뀐다.
내장 웹 서버 응용 1부
ex)
지금 spring-boot-starter-web에 있는 tomcat을 빼보았다.
서블릿 컨테이너는 이제 원하는거 넣어 쓰면된다.
application.properties 에서 port를 조정하고 웹서버를 사용안하는 설정도 가능
(단, classpath에 웹서버가 필수적인 코드가 없을 경우 가능한것)
ApplicationListner<ServletWebServerInitializedEvent>
이건...server.port=0으로 했을때 서버포트가 사용가능한걸 찾아 랜덤으로 설정하는데
SerlvetWebServerInitializedEvent에서 서버를 꺼내 포트를 찾아 낼 수 있다.
내장 웹 서버 응용 2부 HTTPS, HTTP2
'Spring > Spring Boot' 카테고리의 다른 글
Spring Boot 개념다지기 No.5 (0) | 2020.04.25 |
---|---|
Spring Boot 개념다지기 No.4 (0) | 2020.04.24 |
The server time zone value '???' is unrecognized or represents more than one time zone. (0) | 2020.04.20 |
Spring Boot 개념다지기 No.2 (0) | 2020.04.19 |
Spring Boot 개념다지기 No.1 (0) | 2020.04.18 |