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.

  1. 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

  1. Tipus de propietats

Propietats de configuració del servidor

Aquestes propietats configuren el servidor integrat de Spring Boot, com el port i el context path:

server.port=8081
server.servlet.context-path=/myapp

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ó:

myapp.feature.enabled=true
myapp.api.key=12345

  1. 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ó:

myapp.feature.enabled=true
myapp.api.key=12345

  1. 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:

spring.profiles.active=dev

Exercici pràctic

Objectiu

Configurar una aplicació Spring Boot per utilitzar diferents propietats segons l'entorn (desenvolupament i producció).

Passos

  1. Crea els fitxers application-dev.properties i application-prod.properties.
  2. Defineix propietats diferents en cada fitxer.
  3. Crea una classe Java per accedir a aquestes propietats.
  4. Activa el perfil de desenvolupament i comprova que les propietats es carreguen correctament.

Solució

Fitxer application-dev.properties

server.port=8081
myapp.feature.enabled=true

Fitxer application-prod.properties

server.port=8080
myapp.feature.enabled=false

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:

spring.profiles.active=dev

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

Mòdul 2: Conceptes bàsics de Spring Boot

Mòdul 3: Construint serveis web RESTful

Mòdul 4: Accés a dades amb Spring Boot

Mòdul 5: Seguretat a Spring Boot

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ó

Mòdul 10: Millors pràctiques i consells

© Copyright 2024. Tots els drets reservats