똑같은 삽질은 2번 하지 말자

Spring Boot 개념다지기 No.3 본문

Spring/Spring Boot

Spring Boot 개념다지기 No.3

곽빵 2020. 4. 21. 00:53

일 끝나고 좀 쉬다가 현재 시간 오후 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 

 

 

 

 

 

 

Comments