Pytania w tym artykule pojawiły się podczas szkolenia Tworzenie solidnych i ultraszybkich rozwiązań produkcyjnych bazując na sprawdzonych zaletach frameworka Spring Boot realizowanego w dniach 05-09.06.2017 r.
Tomasz Popis
DEVELOPER AND TRAINER
Jak SpringBoot wspiera konfigurację kontenera servletów?
SpringBoot automatycznie konfiguruje i dostarcza server Tomcat jeśli tylko do zależności projektowych dodane zostaną zależności wskazujące, że środowiskiem działania aplikacji ma być kontener WEB (np. zależności org.springframework.boot:spring-boot-starter-data-rest, lub org.springframework.boot:spring-boot-starter-data-web).
Czy w SpringBoot, zachowując mechanizm automatycznej konfiguracji, jest alternatywa dla kontenera Tomcat?
Tak, obok servera Tomcat można wykorzystać server Jetty (http://www.eclipse.org/jetty/) lub Undertow (http://undertow.io).
Server Tomcat jest w SpringBoot konfigurowany domyślnie przy zależnościach spring-boot-starter-data-rest lub spring-boot-starter-data-web. Wystarczy dodać jedną z zależności
org.springframework.boot:spring-boot-starter-jetty dla servera Jetty lub org.springframework.boot:spring-boot-starter-undertow dla servera Undertow aby podmienić domyślny server.
Czy w projekcie opartym o SpringBoot można modyfikować konfigurację wbudowanego kontenera WEB z poziomu klasy konfiguracyjnej?
Tak, na konfigurację wbudowanego kontenera WEB można wpływać z poziomu klasy konfiguracyjnej. W tym celu należy, w zależności od wybranego servera (Tomcat, Jetty, Undertow), zarejestrować bean – odpowiednio: TomcatEmbeddedServletContainerFactory, JettyEmbeddedServletContainerFactory lub UndertowEmbeddedServletContainerFactory.
Jednakże często wystarczająca jest konfiguracja servera z poziomu pliku application.properties.
Konfiguracja z poziomu klasy konfiguracyjnej:
@Bean
public EmbeddedServletContainerFactory servletContainer() {
TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory();
//konfiguracja
return factory;
}