[TomCat] [Spring] Como definir o ‘spring.profiles.active’ de uma aplicação Spring no Tomcat

spring-boot

Quando trabalhamos com aplicações desenvolvidas com o Framework Spring Boot é normal utilizarmos os ‘profiles‘ para definir o ambiente que estamos trabalhando, os profiles são muito utilizados para carregar os resources utilizados na aplicação, permitindo uma variedade de ambientes, como testes, desenvolvimento, produção, etc.

O Spring Boot permite que implementemos uma solução já com um servidor de aplicação embutido, mas também nos permite gerar um .war e subirmos em nosso próprio servidor de aplicação, quando temos um jar, para executarmos a aplicação com um profile especifico, basta inserirmos os argumentos na execução, exemplo:

java -Dspring.profiles.active=prod -jar MyApp.jar

Mas como fazemos isso em um servidor de aplicação? aonde normalmente só realizamos o deploy do .war?. Quando temos esse tipo de ambiente temos que configurar o nosso servidor de aplicação para que ele possua esses argumentos, assim, as devidas váriaveis estaram definidas na VM e a solução terá acesso a elas.

A solução é simples, no caso do Tomcat quem se responsabiliza em gerenciar sua execução é um arquivo chamado catalina.sh armazenado na pasta /bin, todas as configurações do servidor de aplicação devem ser configurados nesse arquivo. Para adicionarmos um VM’args no caso o `spring.profiles.active` vamos editar esse arquivo e adicionar na variável CATALINA_OPTS seu valor.

Segue a alteração que deve ser feita no catalina.sh: Continue reading