Profiles é mais uma das facilidades que o Spring Boot traz no seu conjunto de características. Os profiles são um tipo de configuração para ambientes, por exemplo profiles de desenvolvimento, homologação e produção.
Para configurar os profiles são dois passos:
1- Criar os arquivos application.properties
2- Configurar a propriedade spring.profiles.active dentro do application.properties
Arquivos application.properties
Por padrão, o Spring boot espera que tenha o arquivo application.properties esteja criado e caso não tenha passado a propriedade spring.profiles.active por parâmetro ou informada no arquivo de configuração o Spring Boot entende que há apenas um profile na aplicação.
Com isso, poderíamos deixar o arquivo application.properties para ser as configurações de desenvolvimento,pois se não passado nenhum parâmetro o Spring boot sempre vai executar esse arquivo.
Configurando a propriedade
O Spring boot disponibiliza através do application.properties a propriedade spring.profiles.active, que nela é possível colocar qualquer apelido para os profiles, no entanto, o nome que for dado para o profile é preciso ser concatenado com application.properties, exemplo: application-prod.properties.
Exemplo
Criamos o arquivo application.properties e setamos o profile de dev para esse arquivo, com isso, sempre que executar o Spring boot esse arquivo será carregado.
spring.profiles.active=dev spring.datasource.url=jdbc:postgresql://localhost:5432/banco-dev spring.datasource.username=postgres spring.datasource.password=postgres spring.datasource.driver-class-name=org.postgresql.Driver spring.jpa.show-sql=true spring.jpa.properties.hibernate.format_sql=true server.port=8081 logging.level.br.com.despesas=DEBUG
Nesse caso, a propriedade de dev não tem nenhuma função, seria apenas caso utilizado essa propriedade no código para validar se está em ambiente de desenvolvimento.
Agora criamos o profile de produção, seguindo o padrão (aplication-nomeProfile.properties) application-prod.properties e definimos o profiles.active como prod.
spring.profiles.active=prod spring.datasource.url=jdbc:postgresql://localhost:5432/banco-prod spring.datasource.username=postgres spring.datasource.password=postgres spring.datasource.driver-class-name=org.postgresql.Driver spring.jpa.show-sql=false spring.jpa.properties.hibernate.format_sql=false server.port=8081 logging.level.br.com.despesas=INFO
Esse profile apenas será executado quando o parâmetro profiles.active for setado como prod, assim, no momento da executação do Spring boot é preciso passar o seguinte parâmetro -Dspring.profiles.active=prod, sendo exeutado com o comando: mvn spring-boot:run -Dspring.profiles.active=prod.
Outra opção que pode ser feita é ter também o application properties de desenvolvimento, o que permite ter configurações genéricas no application.properties, sempre vão ser executadas, e apenas configurações específicas de ambiente nos arquivos de profile, exemplo:
application.properties
spring.profiles.active=dev spring.datasource.driver-class-name=org.postgresql.Driver spring.http.encoding.enabled=true spring.http.encoding.charset=UTF-8 server.port=8080
application-dev.properties
spring.datasource.url=jdbc:postgresql://localhost:5432/banco-dev spring.datasource.username=postgres spring.datasource.password=postgres spring.jpa.show-sql=true spring.jpa.properties.hibernate.format_sql=true
application-prod.properties
spring.profiles.active=prod spring.datasource.url=jdbc:postgresql://localhost:5432/banco-prod spring.datasource.username=postgres spring.datasource.password=postgres spring.jpa.show-sql=false spring.jpa.properties.hibernate.format_sql=false
Dessa forma, o Spring Boot sempre vai executar o application.properties, no entanto, sempre vai precisar de um parâmetro para identificar qual profile executar, caso não informado, provavelmente vai ocorrer erro no startup da aplicação porque as configurações do datasource são definidas nos arquivos de configuração por ambiente(application-dev e application-prod), assim sempre vai ser necessário executar a aplicação da seguinte forma mvn spring-boot:run -Dspring.profiles.active=dev ou mvn spring-boot:run -Dspring.profiles.active=prod.
Muito bacana este blog, parabéns!
Cadastra ele no /dev/all para o pessoal acompanhar!
http://www.devall.com.br
CurtirCurtido por 1 pessoa
Valeu! Vou cadastrar no /dev/all! Abraço
CurtirCurtir
[…] Um pouco mais sobre profiles no Spring boot pode ser visto neste post. […]
CurtirCurtir
Sempre quando alguém me pede algo básico sobre o spring boot eu indico esse post porque explica corretamente para o pessoal iniciante. Gostaria de deixar a recomendação para o pessoal que está começando também fazerem o download gratuito do e-boo API RESTful com Spring Boot no link → https://www.javaavancado.com/ebook-spring-boot/index.html
CurtirCurtir
Bacana Alex! Muito boa sugestão para complementar o conteúdo.
CurtirCurtir