En aquest tema, aprendrem com configurar fonts de dades en una aplicació Spring Boot. Les fonts de dades són essencials per a qualsevol aplicació que necessiti interactuar amb una base de dades. Spring Boot facilita aquesta configuració mitjançant propietats i anotacions.
Objectius
- Entendre què és una font de dades.
- Configurar una font de dades en una aplicació Spring Boot.
- Utilitzar propietats de configuració per personalitzar la connexió a la base de dades.
- Provar la configuració de la font de dades.
Què és una font de dades?
Una font de dades (DataSource) és un objecte que proporciona una connexió a una base de dades. En una aplicació Spring Boot, la font de dades és responsable de gestionar les connexions a la base de dades, incloent-hi la configuració de paràmetres com l'URL de la base de dades, l'usuari, la contrasenya, etc.
Configurant una font de dades
- Dependències necessàries
Primer, assegura't de tenir les dependències necessàries en el teu fitxer pom.xml
(per a Maven) o build.gradle
(per a Gradle). Per exemple, per a una base de dades MySQL:
pom.xml:
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency>
build.gradle:
implementation 'mysql:mysql-connector-java' implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
- Propietats de configuració
Spring Boot utilitza el fitxer application.properties
o application.yml
per configurar les propietats de la font de dades. Aquí tens un exemple de configuració per a una base de dades MySQL:
application.properties:
spring.datasource.url=jdbc:mysql://localhost:3306/nom_de_la_base_de_dades spring.datasource.username=usuari spring.datasource.password=contrasenya spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true
application.yml:
spring: datasource: url: jdbc:mysql://localhost:3306/nom_de_la_base_de_dades username: usuari password: contrasenya driver-class-name: com.mysql.cj.jdbc.Driver jpa: hibernate: ddl-auto: update show-sql: true
- Configuració avançada
A més de les propietats bàsiques, pots configurar altres paràmetres com el pool de connexions. Aquí tens un exemple utilitzant HikariCP, que és el pool de connexions per defecte en Spring Boot:
application.properties:
spring.datasource.hikari.maximum-pool-size=10 spring.datasource.hikari.minimum-idle=5 spring.datasource.hikari.idle-timeout=30000 spring.datasource.hikari.max-lifetime=1800000
application.yml:
spring: datasource: hikari: maximum-pool-size: 10 minimum-idle: 5 idle-timeout: 30000 max-lifetime: 1800000
- Provar la configuració
Per assegurar-te que la configuració de la font de dades és correcta, pots crear un simple repositori JPA i una entitat per provar la connexió a la base de dades.
Entitat:
import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @Entity public class Usuari { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String nom; private String email; // Getters i setters }
Repositori:
import org.springframework.data.jpa.repository.JpaRepository; public interface UsuariRepository extends JpaRepository<Usuari, Long> { }
Controlador:
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; @RestController public class UsuariController { @Autowired private UsuariRepository usuariRepository; @GetMapping("/usuaris") public List<Usuari> obtenirUsuaris() { return usuariRepository.findAll(); } }
Amb aquesta configuració, pots iniciar l'aplicació i accedir a http://localhost:8080/usuaris
per veure si la connexió a la base de dades funciona correctament.
Resum
En aquesta secció, hem après com configurar una font de dades en una aplicació Spring Boot. Hem vist com afegir les dependències necessàries, configurar les propietats de la font de dades i provar la configuració amb un simple repositori JPA. Aquesta configuració és essencial per a qualsevol aplicació que necessiti interactuar amb una base de dades.
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