Maison > Java > javaDidacticiel > le corps du texte

Développement JAVA de springBoot2.0 pour créer des sources de données doubles

无忌哥哥
Libérer: 2018-07-20 11:32:06
original
2568 Les gens l'ont consulté

Récemment, en raison des besoins du projet, différentes bases de données doivent être accessibles simultanément dans le programme. C'était vraiment pratique et rapide d'utiliser les annotations springboot pour écrire du code auparavant, mais si vous devez en modifier certaines pour faciliter votre propre utilisation, c'est un peu ennuyeux et je ne sais pas par où commencer. Écrivez ceci.

Le premier est pom.xml, qui est courant et ne sera pas publié ici.

La seconde est la configuration application.properties En raison d'environnements différents, l'auteur a créé deux nouveaux fichiers de configuration application-dev.properties et application-pro.properties.

application.properties : Précisez la configuration de l'environnement actuellement utilisé

spring.profiles.active=dev
Copier après la connexion
application-dev.properties的配置(application-pro.properties类似dev的配置)
Copier après la connexion
#datasource1
spring.datasource.username=**
spring.datasource.password=*****
spring.datasource.jdbc-url=jdbc:mysql://***************
useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

#datasource2
spring.datasource.ds1.username=***
spring.datasource.ds1.password=******
spring.datasource.ds1.jdbc-url=jdbc:mysql://***************
useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.ds1.driver-class-name=com.mysql.jdbc.Drive
Copier après la connexion

MyBatis (Config1) des différentes sources de données

@Configuration
@MapperScan(basePackages = "com.pet.petgame2.mapper.dao", sqlSessionFactoryRef = "petgame2SessionFactory")
public class Config1 {

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

    @Bean(name = "petgame2SessionFactory")
    @Primary
    public SqlSessionFactory sessionFactory(@Qualifier("petgame2") DataSource dataSource) throws Exception{
        SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
        factoryBean.setDataSource(dataSource);
        factoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:Mapper/pet2Mapper/*.xml"));
        return factoryBean.getObject();
    }

    @Bean(name = "petgame2TransactionManager")
    @Primary
    public DataSourceTransactionManager transactionManager(@Qualifier("petgame2") DataSource dataSource){
        return new DataSourceTransactionManager(dataSource);
    }
}
Copier après la connexion
<🎜. > MyBatis (Config2) à partir de différentes sources de données

@Configuration
@MapperScan(basePackages = "com.pet.petgame2.mapper.dao2", sqlSessionFactoryRef = "petgamesqlSessionFactory")
public class Config2 {

    @Bean(name = "petgame")
    @ConfigurationProperties(prefix = "spring.datasource.ds1")
    public DataSource dataSource(){
        return DataSourceBuilder.create().build();
    }

    @Bean(name = "petgamesqlSessionFactory")
    public SqlSessionFactory sessionFactory(@Qualifier("petgame") DataSource dataSource) throws Exception{
        SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
        factoryBean.setDataSource(dataSource);
        factoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:Mapper/petMapper/*.xml"));
        return factoryBean.getObject();
    }

    @Bean(name = "petgameTransactionManager")
    public DataSourceTransactionManager transactionManager(@Qualifier("petgame") DataSource dataSource){
        return new DataSourceTransactionManager(dataSource);
    }
}
Copier après la connexion
L'annotation @MapperScan analysera automatiquement le fichier d'interface du mappeur. factoryBean.setMapperLocations analysera le fichier Mapper.XML correspondant au fichier d'interface du mappeur. de ces deux ne sont pas les mêmes. @Primary définit la configuration par défaut des liens de base de données et l'une des sources de données doit être spécifiée par défaut.

*Remarque : Si vous utilisez Hikari fourni avec springboot2.0 comme pool de connexions, vous devez faire attention à

spring.datasource.url改为spring.datasource.jdbc-url
Copier après la connexion
dans les propriétés ou modifier le DataSource dans la configuration en DataSourceProperties, comme suit

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!