🚀 10.3 O Pacote WAR: Legado com Alma de Elite
Em alguns ambientes de produção mais conservadores ou legados corporativos, o uso de um servidor embutido não é permitido. Nesses casos, a infraestrutura exige que a aplicação seja empacotada como um WAR (Web Application Archive).
Adaptando a Green Dog para WAR
Diferente de sistemas legados complexos, no Spring Boot 3.5, a transição para WAR é extremamente simples e não sacrifica a produtividade.
1. Alteração no pom.xml
Iniciamos definindo o formato de empacotamento:
<packaging>war</packaging>2. O Ponto de Entrada (Initializer)
Para que o servidor externo consiga “dar o boot” na aplicação, nossa classe principal deve estender SpringBootServletInitializer e sobrescrever o método configure:
@SpringBootApplication
public class GreenDogApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(GreenDogApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(GreenDogApplication.class, args);
}
}IMPORTANT
Performance J2EE: Ao rodar em um contêiner externo (como JBoss, WildFly ou WebLogic), o Spring Boot detectará automaticamente o ambiente e desativará seu servidor embutido, utilizando os recursos de pool de threads e conexões do servidor hospedeiro.
Seja em JAR ou WAR, qual o melhor motor para rodar sua aplicação? Veremos como escolher entre Tomcat, Jetty e Undertow no próximo capítulo.