12‐Injecting Custom Application Properties - JulianeMaran32/Java-with-Spring-Boot GitHub Wiki
- Você quer que sua aplicação seja configurável, sem valores fixos diretamente no código.
- Precisa ler configurações de um arquivo externo.
- 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.
- Criar suas propriedades personalizadas no arquivo
application.properties
. - Usar a anotação
@Value
para injetar essas propriedades no seu código Java.
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.
@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
}
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.
Antes de começar, pare a execução do seu app Spring Boot, caso ele esteja rodando.
- Feche a janela do projeto (se quiser organizar).
- Copie/abra a pasta do projeto.
Edite o arquivo application.properties
:
# Minhas propriedades personalizadas
coach.name=Mickey Mouse
team.name=The Mouse Club
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;
}
}
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."
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 pastasrc/main/resources
.
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.