[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:

CATALINA_OPTS="-Dspring.profiles.active=prod"

# CATALINA_OPTS (Optional) Java runtime options used when the "start",
# "run" or "debug" command is executed.
# Include here and not in JAVA_OPTS all options, that should
# only be used by Tomcat itself, not by the stop process,
# the version command etc.
# Examples are heap size, GC logging, JMX ports etc.

Help DEV – Analista desenvolvedor Java / Android
https://helpdev.com.br/zarelli

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.