12‐Injecting Custom Application Properties - JulianeMaran32/Java-with-Spring-Boot GitHub Wiki

27. Injetando Propriedades Personalizadas na Aplicação – Visão Geral

Problema

  • Você quer que sua aplicação seja configurável, sem valores fixos diretamente no código.
  • Precisa ler configurações de um arquivo externo.

Solução: Arquivo de Propriedades da Aplicação

  • Por padrão, o Spring Boot carrega as configurações de um arquivo chamado:
    src/main/resources/application.properties
  • Neste arquivo, você pode definir quaisquer propriedades personalizadas.
  • Para acessar essas propriedades no código, basta usar a anotação @Value.

O Spring Boot faz todo o trabalho automaticamente. Você não precisa de configuração adicional.

Processo de Desenvolvimento (passo a passo)

  1. Criar suas propriedades personalizadas no arquivo application.properties.
  2. Usar a anotação @Value para injetar essas propriedades no seu código Java.

Etapa 1: Definir propriedades personalizadas

Crie ou edite o arquivo src/main/resources/application.properties:

# Propriedades personalizadas
coach.name=Mickey Mouse
team.name=The Mouse Club

Você pode dar qualquer nome às propriedades e adicionar quantas quiser.

Etapa 2: Injetar as propriedades no código

@RestController
public class FunRestController {

    // Injetar os valores definidos no arquivo application.properties

    @Value("${coach.name}")
    private String coachName;

    @Value("${team.name}")
    private String teamName;

    // Os valores são preenchidos automaticamente pelo Spring Boot
}

Resumo

Com o uso da anotação @Value, o Spring Boot injeta automaticamente os valores do arquivo application.properties nas variáveis do seu código. Isso facilita a configuração e evita deixar valores fixos (hardcoded) na aplicação.

28. Injetando Propriedades Personalizadas – Codificação

Antes de começar, pare a execução do seu app Spring Boot, caso ele esteja rodando.

Organização do Projeto

  1. Feche a janela do projeto (se quiser organizar).
  2. Copie/abra a pasta do projeto.

Etapa 1: Criar propriedades personalizadas

Edite o arquivo application.properties:

# Minhas propriedades personalizadas
coach.name=Mickey Mouse
team.name=The Mouse Club

Etapa 2: Injetar e usar as propriedades no código

Abra a classe FunRestController e edite conforme abaixo:

@RestController
public class FunRestController {

    // Injetar propriedades personalizadas
    @Value("${coach.name}")
    private String coachName;

    @Value("${team.name}")
    private String teamName;

    // Novo endpoint para exibir as propriedades
    @GetMapping("/team-info")
    public String getTeamInfo() {
        return "Coach: " + coachName + " | Team name: " + teamName;
    }
}

Testar os Endpoints

Execute o aplicativo novamente e acesse os seguintes caminhos no navegador:

  • http://localhost:8080/ → "Hello World!"
  • http://localhost:8080/team-info → "Coach: Mickey Mouse | Team name: The Mouse Club"
  • http://localhost:8080/workout → "Run a hard 5k!"
  • http://localhost:8080/fortune → "Today is your lucky day."

Importante

Se ocorrer algum erro (por exemplo, a propriedade não foi encontrada), verifique se:

  • Os nomes das propriedades no arquivo .properties estão corretos.
  • Os nomes usados na anotação @Value estão escritos corretamente (${...}).
  • O arquivo application.properties está realmente na pasta src/main/resources.

Resumo

Com essas etapas simples, você consegue tornar sua aplicação mais flexível, configurável e organizada, evitando valores fixos no código. Esse é um dos princípios mais importantes em aplicações profissionais.

⚠️ **GitHub.com Fallback** ⚠️