-
내장 서블릿 컨테이너 응용 해보기Spring/Spring Boot 2020. 5. 14. 00:20
스프링 부트가 기본 설정으로 제공해주는 톰캣 대신 제티, 언더토 등의 다른 서블릿 컨테이너를 사용해보자.
기본적으로 우리는 서블릿 기반의 웹 어플리케이션 App을 개발할 때 톰캣을 쓰게 된다. 앞에서
살펴보았던 자동 설정에 의해 톰캣용 자동 설정 파일이 만들어지고 쓰게 된다.
build 툴로는 maven을 사용하였는데 다음과 같이 exclusions을 통해 톰캣을 빼주자.
그 후 다음과 같이 jetty 의존성을 추가해주자.
이제 의존성이 들어온 것을 확인을 하고 실행을 해보면 Jetty로 띄워지는 것을 확인할 수 있다.
그러면 웹 서버를 사용하지 않을 수도 있을까?
기본적으로 의존성에 웹과 관련된 기술이 들어와 있다면 스프링 부트는 웹 App으로 만들려고 시도를 한다.
웹과 관련된 의존성을 제거하거나 혹은 application.propertieㄴ에서 웹 App 타입을 none으로 준다면 웹과 관련된 의존
성이 있더라도 무시하고 none-Web App으로 실행하고 끝나게 된다.
스프링 부트에서 서버의 포트를 손쉽게 바꿔보자
다음과 같이 application.properties에서 포트 번호를 지정해주거나
server.port = 0 으로 랜덤 포트 설정도 가능하다. 랜덤 포트는 비어있는 포트를 찾아서 띄워주게 된다.
그러면 런타임시 랜덤 하게 뜨는 포트를 알 수 있는 방법은??
이 Event는 웹 서버가 생성이 되면 이 이벤트 리스너가 호출이 된다.
1. 먼저 이벤트에서 applicationContext를 꺼내고
2. 해당 서블릿 applicationContext를 통해 웹 서버를 알 수 있고 포트를 알 수 있다.
'Spring > Spring Boot' 카테고리의 다른 글
RestTemplate, WebClient (0) 2020.07.13 JSR-303 Errors들을 Json으로 Serialization 해보자 (0) 2020.06.25 스프링 부트 MySQL8 연동 Intellij (0) 2020.06.23 application.properties 등의 외부 설정 (0) 2020.06.13 내장 웹 서버 이해 (0) 2020.05.02