国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

springboot多數據源配置

shevy / 3384人閱讀

摘要:一定義兩個數據源和生成數據源注解聲明為默認數據源創建配置事務管理二注意不同的數據源的類一定不能放在一個包下否則只掃描一個數據源即只會使用一個數據源里一個不會加載三配置文件使用數據源使用數據源四修改對應位置的代碼使用時可自動切換數據源

一.定義兩個數據源DataSource1Config 和DataSource2Config

package com.rainbow.test.config;

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;

import javax.sql.DataSource;

@Configuration
@MapperScan(basePackages = "com.rainbow.test.mapper.test1", sqlSessionTemplateRef = "db1SqlSessionTemplate")
public class DataSource1Config {

    /**
     * 生成數據源.  @Primary 注解聲明為默認數據源
     */
    @Bean(name = "db1DataSource")
    @ConfigurationProperties(prefix = "spring.datasource.test")

    public DataSource testDataSource() {
        return DataSourceBuilder.create().build();
    }

    /**
     * 創建 SqlSessionFactory
     */
    @Bean(name = "db1SqlSessionFactory")
    public SqlSessionFactory testSqlSessionFactory(@Qualifier("db1DataSource") DataSource dataSource) throws Exception {
        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
        bean.setDataSource(dataSource);
        bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:com/rainbow/test/mapper/test1/*.xml"));

        //  bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mybatis/mapper/db1/*.xml"));
        return bean.getObject();
    }

    /**
     * 配置事務管理
     */
    @Bean(name = "db1TransactionManager")
    public DataSourceTransactionManager testTransactionManager(@Qualifier("db1DataSource") DataSource dataSource) {
        return new DataSourceTransactionManager(dataSource);
    }

    @Bean(name = "db1SqlSessionTemplate")
    public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("db1SqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
        return new SqlSessionTemplate(sqlSessionFactory);
    }

}

package com.rainbow.test.config;

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;

import javax.sql.DataSource;

@Configuration
@MapperScan(basePackages = "com.rainbow.test.mapper.test2", sqlSessionTemplateRef = "db2SqlSessionTemplate")
public class DataSource2Config {

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

    @Bean(name = "db2SqlSessionFactory")
    @Primary
    public SqlSessionFactory testSqlSessionFactory(@Qualifier("db2DataSource") DataSource dataSource) throws Exception {
        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
        bean.setDataSource(dataSource);
        bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:com/rainbow/test/mapper/test2/*.xml"));
        return bean.getObject();
    }

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

    @Bean(name = "db2SqlSessionTemplate")
    @Primary
    public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("db2SqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
        return new SqlSessionTemplate(sqlSessionFactory);
    }

}

二.注意不同的數據源的mapper類一定不能放在一個包下,否則@mapperscan只掃描一個數據源,即只會使用一個數據源,里一個不會加載

三.配置yml文件

spring:
  datasource:
    test:
      # 使用druid數據源
      type: com.alibaba.druid.pool.DruidDataSource
      jdbc-url: jdbc:mysql://localhost:3306/test?serverTimezone=CTT&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true
      username: root
      password: root
      driver-class-name: com.mysql.jdbc.Driver

    test1:
      # 使用druid數據源
      type: com.alibaba.druid.pool.DruidDataSource
      jdbc-url: jdbc:oracle:thin:@172.16.182.18:1521:orcl
      username: policyprint
      password: sinosoft
      driver-class-name: oracle.jdbc.OracleDriver

四.修改對應位置的代碼,使用時可自動切換數據源

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/74965.html

相關文章

  • 新手也能實現,基于SpirngBoot2.0+ 的 SpringBoot+Mybatis 據源

    摘要:下面基于,帶著大家看一下中如何配置多數據源。注意版本不一致導致的一些小問題。配置配置兩個數據源數據庫和數據庫注意事項在配置數據源的過程中主要是寫成和。五啟動類此注解表示啟動類這樣基于的多數據源配置就已經完成了,兩個數據庫都可以被訪問了。 在上一篇文章《優雅整合 SpringBoot+Mybatis ,可能是你見過最詳細的一篇》中,帶著大家整合了 SpringBoot 和 Mybatis...

    shiina 評論0 收藏0
  • 兩年了,我寫了這些干貨!

    摘要:開公眾號差不多兩年了,有不少原創教程,當原創越來越多時,大家搜索起來就很不方便,因此做了一個索引幫助大家快速找到需要的文章系列處理登錄請求前后端分離一使用完美處理權限問題前后端分離二使用完美處理權限問題前后端分離三中密碼加鹽與中異常統一處理 開公眾號差不多兩年了,有不少原創教程,當原創越來越多時,大家搜索起來就很不方便,因此做了一個索引幫助大家快速找到需要的文章! Spring Boo...

    huayeluoliuhen 評論0 收藏0
  • SpringBoot模塊項目實踐(Multi-Module)

    摘要:接下來,本文將重點闡述在環境的多模塊構建過程。本項目傳送門一創建聚合父工程首先使用來快速創建好一個工程。然后在里面聲明該父工程包含的子模塊。 序言:比起傳統復雜的單體工程,使用Maven的多模塊配置,可以幫助項目劃分模塊,鼓勵重用,防止POM變得過于龐大,方便某個模塊的構建,而不用每次都構建整個項目,并且使得針對某個模塊的特殊控制更為方便。接下來,本文將重點闡述SpringBoot在M...

    renweihub 評論0 收藏0
  • SpringBoot 實戰 (三) | 配置文件詳解

    摘要:前言如題,今天解析下的配置文件。這時我們就可以用的屬性來配置隨機數,比如隨機字符串隨機隨機以內的隨機數的隨機數使用多配置文件很多時候我們開發項目都需要很多套環境,比如有測試環境,開發環境以及生產環境。原因是,是以的編碼方式讀取配置文件。 微信公眾號:一個優秀的廢人如有問題或建議,請后臺留言,我會盡力解決你的問題。 前言 如題,今天解析下 SpringBoot 的配置文件。 自定義屬性加...

    chenjiang3 評論0 收藏0

發表評論

0條評論

shevy

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<