最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot項目如何配置多數(shù)據(jù)源

 更新時間:2025年03月04日 09:02:34   作者:L丶小先生  
本文介紹了如何在SpringBoot項目中配置多數(shù)據(jù)源,包括配置多個數(shù)據(jù)源、創(chuàng)建數(shù)據(jù)源配置類、配置事務(wù)管理器以及使用不同的Mapper,從而實現(xiàn)跨數(shù)據(jù)庫操作

springboot項目配置多數(shù)據(jù)源

1. 配置多個數(shù)據(jù)源

首先,你需要在application.yml或application.properties中配置多個數(shù)據(jù)源。

例如:

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    one:
      driver-class-name: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://localhost:3306/db1?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
      username: xxs
      password: 123456
    two:
      driver-class-name: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://localhost:3306/db2?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
      username: xxs
      password: 123456

2. 創(chuàng)建數(shù)據(jù)源配置類

對于每個數(shù)據(jù)源,你需要創(chuàng)建一個配置類來定義DataSource、SqlSessionFactory和MapperScan。

例如:

@Configuration
@MapperScan(basePackages = "com.xxs.mapper.db1", sqlSessionFactoryRef = "db1SqlSessionFactory")
public class DataSourceOneConfig {

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

    @Bean(name = "db1SqlSessionFactory")
    public SqlSessionFactory db1SqlSessionFactory(@Qualifier("db1DataSource") DataSource dataSource) throws Exception {
        SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
        sessionFactory.setDataSource(dataSource);
        sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/db1/*.xml"));
        return sessionFactory.getObject();
    }
}

對于第二個數(shù)據(jù)源,創(chuàng)建另一個配置類:

@Configuration
@MapperScan(basePackages = "com.xxs.mapper.db2", sqlSessionFactoryRef = "db2SqlSessionFactory")
public class DataSourceTwoConfig {

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

    @Bean(name = "db2SqlSessionFactory")
    public SqlSessionFactory db2SqlSessionFactory(@Qualifier("db2DataSource") DataSource dataSource) throws Exception {
        SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
        sessionFactory.setDataSource(dataSource);
        sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/db2/*.xml"));
        return sessionFactory.getObject();
    }
}

3. 配置事務(wù)管理器

對于每個數(shù)據(jù)源,你還需要配置相應(yīng)的事務(wù)管理器:

@Bean(name = "db1TransactionManager")
public DataSourceTransactionManager db1TransactionManager(@Qualifier("db1DataSource") DataSource dataSource) {
    return new DataSourceTransactionManager(dataSource);
}

@Bean(name = "db2TransactionManager")
public DataSourceTransactionManager db2TransactionManager(@Qualifier("db2DataSource") DataSource dataSource) {
    return new DataSourceTransactionManager(dataSource);
}

4. 使用不同的Mapper

現(xiàn)在你可以在不同的包路徑下創(chuàng)建對應(yīng)的Mapper接口,并在對應(yīng)的Mapper XML文件中編寫SQL語句。

例如,com.xxs.mapper.db1包下的Mapper接口將使用第一個數(shù)據(jù)源,而com.xxs.mapper.db2包下的Mapper接口將使用第二個數(shù)據(jù)源。

這樣,你就可以在Spring Boot項目中配置不同數(shù)據(jù)庫的Mapper,并實現(xiàn)跨數(shù)據(jù)庫操作了。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot的異常處理流程是什么樣的?

    SpringBoot的異常處理流程是什么樣的?

    今天給大家?guī)淼氖荍ava的相關(guān)知識,文章圍繞著SpringBoot的異常處理流程展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • Java線程中斷的實現(xiàn)過程

    Java線程中斷的實現(xiàn)過程

    這篇文章主要介紹了Java線程中斷的實現(xiàn)過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • Java中高效的對象映射庫Orika的用法詳解

    Java中高效的對象映射庫Orika的用法詳解

    Orika是一個高效的Java對象映射庫,專門用于在Java應(yīng)用程序中簡化對象之間的轉(zhuǎn)換,下面就跟隨小編一起來深入了解下Orika的具體使用吧
    2024-11-11
  • Java獲取年月日(格式:xxxx年xx月xx日)的方法詳解

    Java獲取年月日(格式:xxxx年xx月xx日)的方法詳解

    在開發(fā)應(yīng)用程序時,經(jīng)常需要獲取當前的年、月、日,并以特定格式進行展示或處理,本文將介紹如何獲取年月日,并將其格式化為“xxxx年xx月xx日”的形式,幫助你在應(yīng)用程序中處理日期信息,需要的朋友可以參考下
    2023-10-10
  • 劍指Offer之Java算法習題精講數(shù)組與二叉樹

    劍指Offer之Java算法習題精講數(shù)組與二叉樹

    跟著思路走,之后從簡單題入手,反復(fù)去看,做過之后可能會忘記,之后再做一次,記不住就反復(fù)做,反復(fù)尋求思路和規(guī)律,慢慢積累就會發(fā)現(xiàn)質(zhì)的變化
    2022-03-03
  • Java類加載機制實現(xiàn)流程及原理詳解

    Java類加載機制實現(xiàn)流程及原理詳解

    這篇文章主要介紹了Java類加載機制實現(xiàn)流程及原理詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • SpringCloud openfeign相互調(diào)用實現(xiàn)方法介紹

    SpringCloud openfeign相互調(diào)用實現(xiàn)方法介紹

    在springcloud中,openfeign是取代了feign作為負載均衡組件的,feign最早是netflix提供的,他是一個輕量級的支持RESTful的http服務(wù)調(diào)用框架,內(nèi)置了ribbon,而ribbon可以提供負載均衡機制,因此feign可以作為一個負載均衡的遠程服務(wù)調(diào)用框架使用
    2022-11-11
  • spring中JdbcTemplate操作oracle的存儲過程實例代碼

    spring中JdbcTemplate操作oracle的存儲過程實例代碼

    JdbcTemplate是Spring對JDBC的封裝,目的是使JDBC更加易于使用,JdbcTemplate是Spring的一部分,下面這篇文章主要給大家介紹了關(guān)于spring中JdbcTemplate操作oracle的存儲過程的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • Springboot中實現(xiàn)策略模式+工廠模式的方法

    Springboot中實現(xiàn)策略模式+工廠模式的方法

    這篇文章主要介紹了Springboot中實現(xiàn)策略模式+工廠模式,具體策略模式和工廠模式的UML我就不給出來了,使用這個這兩個模式主要是防止程序中出現(xiàn)大量的IF ELSE IF ELSE....,接下來咱們直接實現(xiàn)Springboot策略模式工廠模式
    2022-03-03
  • Java NIO Buffer過程詳解

    Java NIO Buffer過程詳解

    這篇文章主要介紹了Java NIO Buffer過程詳解,緩沖區(qū)在java nio中負責數(shù)據(jù)的存儲。緩沖區(qū)就是數(shù)組。用于存儲不同數(shù)據(jù)類型的數(shù)據(jù)。,需要的朋友可以參考下
    2019-06-06

最新評論

张掖市| 鹿邑县| 锦州市| 广河县| 班玛县| 怀来县| 寿光市| 邻水| 从江县| 无为县| 贵德县| 鱼台县| 赤峰市| 阿巴嘎旗| 麻栗坡县| 和顺县| 陵川县| 清徐县| 临沭县| 黄梅县| 深水埗区| 汾阳市| 香格里拉县| 英山县| 松阳县| 邢台市| 华亭县| 岳西县| 通榆县| 泽库县| 黄山市| 德格县| 乌拉特后旗| 白山市| 长沙县| 石嘴山市| 红河县| 广西| 北海市| 林周县| 大竹县|