"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como usar perfis Spring em seu aplicativo Spring Boot

Como usar perfis Spring em seu aplicativo Spring Boot

Publicado em 2024-08-06
Navegar:819

How to Use Spring Profiles in Your Spring Boot Application

Spring Profiles fornecem uma maneira poderosa de segregar partes da configuração do seu aplicativo e torná-lo disponível apenas em determinados ambientes. Este recurso é especialmente útil para lidar com diferentes configurações para ambientes de desenvolvimento, teste e produção sem alterar seu código.

O que são perfis Spring?

Spring Profiles permitem registrar beans condicionalmente, dependendo do perfil ativo. Isso significa que você pode definir vários beans do mesmo tipo e especificar qual deles deve estar ativo em um determinado ambiente.

Configurando perfis Spring

1. Criando arquivos de configuração

Spring Boot usa um conjunto de arquivos application-{profile}.properties ou application-{profile}.yml para configuração. Esses arquivos contêm configurações específicas do perfil e são carregados com base no perfil ativo.

Configuração padrão (application.yml)

spring:
  application:
    name: MySpringApp

server:
  port: 8080  # Default port

Configuração de desenvolvimento (application-dev.yml)

spring:
  datasource:
    url: jdbc:h2:mem:devdb
    username: sa
    password: ""
    driver-class-name: org.h2.Driver
  jpa:
    hibernate:
      ddl-auto: update
    show-sql: true

server:
  port: 8081  # Development port

Configuração de produção (application-prod.yml)

spring:
  datasource:
    url: jdbc:mysql://prod-db-server:3306/proddb
    username: prod_user
    password: prod_password
    driver-class-name: com.mysql.cj.jdbc.Driver
  jpa:
    hibernate:
      ddl-auto: validate
    show-sql: false

server:
  port: 8082  # Production port

Ativando perfis Spring

2. Ativando Perfis via Linha de Comando

Você pode ativar um perfil usando o parâmetro --spring.profiles.active ao executar seu aplicativo Spring Boot:

java -jar my-spring-app.jar --spring.profiles.active=dev

3. Ativando perfis por meio das propriedades do aplicativo

Como alternativa, você pode especificar o perfil ativo em seu arquivo application.yml:

spring:
  profiles:
    active: dev  # or prod

4. Ativando Perfis via Variáveis ​​de Ambiente

Você também pode definir o perfil ativo usando uma variável de ambiente:

export SPRING_PROFILES_ACTIVE=dev

Usando perfis no código

Spring fornece uma anotação @Profile para registrar beans condicionalmente com base no perfil ativo. Aqui está um exemplo:

Exemplos de classes de configuração

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;

@Configuration
public class AppConfig {

    @Bean
    @Profile("dev")
    public DataSource devDataSource() {
        return new HikariDataSource();  // Development-specific DataSource
    }

    @Bean
    @Profile("prod")
    public DataSource prodDataSource() {
        return new HikariDataSource();  // Production-specific DataSource
    }
}

Neste exemplo, o bean devDataSource só será criado quando o perfil dev estiver ativo, e o bean prodDataSource será criado quando o perfil prod estiver ativo.

Testando Beans Específicos do Perfil

Ao escrever testes, você pode especificar quais perfis devem estar ativos usando a anotação @ActiveProfiles:

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;

@SpringBootTest
@ActiveProfiles("dev")
public class DevProfileTests {

    @Autowired
    private DataSource dataSource;

    @Test
    public void testDataSource() {
        // Test code using the development DataSource
    }
}

Propriedades específicas do perfil

Às vezes, você pode querer carregar arquivos de propriedades diferentes com base no perfil ativo. Você pode usar a anotação @PropertySource para conseguir isso:

import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;

@Configuration
@PropertySource("classpath:application-${spring.profiles.active}.properties")
public class PropertyConfig {
}

Conclusão

Spring Profiles são uma maneira robusta e flexível de gerenciar diferentes configurações para vários ambientes. Ao segregar suas propriedades de configuração e beans com base em perfis, você pode garantir que seu aplicativo se comporte corretamente em cada ambiente, seja ele de desenvolvimento, teste ou produção. Usando as técnicas descritas neste artigo, você pode configurar e gerenciar facilmente perfis em seu aplicativo Spring Boot.

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/isaactony/how-to-use-spring-profiles-in-your-spring-boot-application-o18?1 Se houver alguma violação, entre em contato com study_golang@163 .com para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3