🚀 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.


⬅️ Capítulo Anterior | Próximo Capítulo ➡️