Maison >Java >javaDidacticiel >Comment configurer et utiliser plusieurs sources de données dans Spring Boot ?

Comment configurer et utiliser plusieurs sources de données dans Spring Boot ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-18 18:36:14625parcourir

How to Configure and Use Multiple Data Sources in Spring Boot?

Configuration et utilisation de plusieurs sources de données dans Spring Boot

Dans les applications Spring Boot, il est possible de configurer et d'utiliser plusieurs sources de données. Cette flexibilité permet aux développeurs de gérer les données de différentes bases de données ou d'effectuer des opérations spécifiques basées sur la source de données. Voici un exemple pour démontrer la configuration et l'utilisation :

Propriétés de l'application et sources de données

Ajoutez les propriétés suivantes à votre fichier application.properties :

# First Data Source
spring.datasource.url=[URL]
spring.datasource.username=[USERNAME]
spring.datasource.password=[PASSWORD]
spring.datasource.driverClassName=oracle.jdbc.OracleDriver

# Second Data Source
spring.secondDatasource.url=[URL]
spring.secondDatasource.username=[USERNAME]
spring.secondDatasource.password=[PASSWORD]
spring.secondDatasource.driverClassName=oracle.jdbc.OracleDriver

Configuration du bean

Dans une classe annotée avec @Configuration, définissez des méthodes pour créer et configurer chaque source de données comme beans :

@Bean
@Primary
@ConfigurationProperties(prefix="spring.datasource")
public DataSource primaryDataSource() {
    return DataSourceBuilder.create().build();
}

@Bean
@ConfigurationProperties(prefix="spring.secondDatasource")
public DataSource secondaryDataSource() {
    return DataSourceBuilder.create().build();
}

Câblage automatique et utilisation

Pour câbler automatiquement la source de données principale d'un référentiel :

@Repository
public class UserRepository {
    @Autowired
    private EntityManager entityManager;
    // ...
}

Pour câbler automatiquement la source de données secondaire pour un référentiel différent :

@Repository
public class OrderRepository {
    @Autowired
    @Qualifier("secondaryDataSource")
    private EntityManager entityManager;
    // ...
}

En ajoutant @Qualifier("secondaryDataSource") au champ EntityManager, Spring injectera la source de données secondaire au lieu de le principal.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn