En aquest tema, explorarem les propietats de Spring Boot, que són una part fonamental per configurar i personalitzar les aplicacions. Les propietats permeten ajustar el comportament de l'aplicació sense necessitat de modificar el codi font. A continuació, veurem com definir i utilitzar aquestes propietats.
- Introducció a les propietats de Spring Boot
Spring Boot proporciona un mecanisme senzill per gestionar la configuració de l'aplicació mitjançant fitxers de propietats. Els fitxers de propietats més comuns són application.properties
i application.yml
.
Fitxer application.properties
Aquest fitxer utilitza una sintaxi de clau-valor per definir les propietats:
server.port=8081 spring.datasource.url=jdbc:mysql://localhost:3306/mydb spring.datasource.username=root spring.datasource.password=secret
Fitxer application.yml
Aquest fitxer utilitza una sintaxi YAML, que és més llegible i estructurada:
server: port: 8081 spring: datasource: url: jdbc:mysql://localhost:3306/mydb username: root password: secret
- Tipus de propietats
Propietats de configuració del servidor
Aquestes propietats configuren el servidor integrat de Spring Boot, com el port i el context path:
Propietats de configuració de la base de dades
Aquestes propietats configuren la connexió a la base de dades:
spring.datasource.url=jdbc:mysql://localhost:3306/mydb spring.datasource.username=root spring.datasource.password=secret
Propietats personalitzades
Pots definir propietats personalitzades per a la teva aplicació:
- Accedint a les propietats en el codi
Utilitzant l'anotació @Value
L'anotació @Value
permet injectar el valor d'una propietat en una variable de classe:
import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @Component public class MyComponent { @Value("${myapp.feature.enabled}") private boolean featureEnabled; @Value("${myapp.api.key}") private String apiKey; // Mètodes de la classe }
Utilitzant la classe @ConfigurationProperties
L'anotació @ConfigurationProperties
permet mapar un grup de propietats a una classe Java:
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; @Component @ConfigurationProperties(prefix = "myapp") public class MyAppProperties { private boolean featureEnabled; private String apiKey; // Getters i setters }
I en el fitxer de configuració:
- Perfils de Spring Boot
Els perfils permeten definir diferents conjunts de propietats per a diferents entorns (per exemple, desenvolupament, prova, producció).
Definint perfils
Pots definir perfils en fitxers de propietats específics per a cada perfil:
application-dev.properties
application-prod.properties
Activant perfils
Pots activar un perfil mitjançant la propietat spring.profiles.active
:
Exercici pràctic
Objectiu
Configurar una aplicació Spring Boot per utilitzar diferents propietats segons l'entorn (desenvolupament i producció).
Passos
- Crea els fitxers
application-dev.properties
iapplication-prod.properties
. - Defineix propietats diferents en cada fitxer.
- Crea una classe Java per accedir a aquestes propietats.
- Activa el perfil de desenvolupament i comprova que les propietats es carreguen correctament.
Solució
Fitxer application-dev.properties
Fitxer application-prod.properties
Classe Java
import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @Component public class MyComponent { @Value("${server.port}") private int serverPort; @Value("${myapp.feature.enabled}") private boolean featureEnabled; // Mètodes de la classe }
Activant el perfil de desenvolupament
En el fitxer application.properties
:
Verificació
Executa l'aplicació i comprova que el port del servidor és 8081 i que la funcionalitat està habilitada.
Conclusió
Les propietats de Spring Boot són una eina poderosa per configurar i personalitzar les aplicacions. Hem vist com definir propietats en fitxers de configuració, com accedir-hi des del codi i com utilitzar perfils per gestionar diferents entorns. Amb aquesta base, pots ajustar fàcilment la configuració de la teva aplicació segons les necessitats específiques de cada entorn.
Curs de Spring Boot
Mòdul 1: Introducció a Spring Boot
- Què és Spring Boot?
- Configuració del teu entorn de desenvolupament
- Creant la teva primera aplicació Spring Boot
- Entenent l'estructura del projecte Spring Boot
Mòdul 2: Conceptes bàsics de Spring Boot
- Anotacions de Spring Boot
- Injecció de dependències a Spring Boot
- Configuració de Spring Boot
- Propietats de Spring Boot
Mòdul 3: Construint serveis web RESTful
- Introducció als serveis web RESTful
- Creant controladors REST
- Gestionant mètodes HTTP
- Gestió d'excepcions en REST
Mòdul 4: Accés a dades amb Spring Boot
- Introducció a Spring Data JPA
- Configuració de fonts de dades
- Creant entitats JPA
- Utilitzant repositoris de Spring Data
- Mètodes de consulta a Spring Data JPA
Mòdul 5: Seguretat a Spring Boot
- Introducció a Spring Security
- Configuració de Spring Security
- Autenticació i autorització d'usuaris
- Implementant autenticació JWT
Mòdul 6: Proves a Spring Boot
Mòdul 7: Funcions avançades de Spring Boot
Mòdul 8: Desplegant aplicacions Spring Boot
Mòdul 9: Rendiment i monitorització
- Optimització del rendiment
- Monitorització amb Spring Boot Actuator
- Utilitzant Prometheus i Grafana
- Gestió de registres i logs