複数のデータソース構成を取得するための3つのステップ

1application.yamlファイルを変更します

spring:
  datasource:
    scm:
      driver-class-name: com.mysql.jdbc.Driver
      jdbc-url: 
      username: 
      password: 
    sentry:
      driver-class-name: com.mysql.jdbc.Driver
      jdbc-url: 
      username: 
      password: 

注意:

1. scmとsentryはそれ自体の名前を定義します。ここで定義された名前は、後で構成ファイルで使用されます。

2.urlではなくjdbc-urlに注意してください

3.インデントのフォーマットに特に注意してください

2.daoフォルダーとmapperフォルダーの下にそれぞれ2つの新しいフォルダーを作成します

注:その後、異なるデータソースのdaoレイヤーとxmlファイルが対応するファイルの下に配置されます

3.構成パッケージの下に2つのデータソースの構成ファイルを追加します

@Configuration
@MapperScan(basePackages = "com.fan.bigdata.dao.scm", sqlSessionTemplateRef = "scmSqlSessionTemplate")
public class ScmSourceConfig {
    @Bean(name = "scm")
    @ConfigurationProperties(prefix = "spring.datasource.scm")
    @Primary
    public DataSource testDataSource() {
        return DataSourceBuilder.create().build();
    }

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

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

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

注意:

1. 2行目のbasePackagesの値を対応するdaoパスに置き換え、16行目を対応するマッパーパスに置き換えます

2.すべてのscmを自分の名前に置き換えます

3. SentrySourceConfigファイルは基本的にScmSourceConfigファイルと同じです。対応するscmを歩哨に置き換えます。さらに、私のscmがメインライブラリであるため、@ primaryアノテーションがあります。他のライブラリの場合は、@ primaryを削除するだけです。

++++++++++++++++++++++++++++++++++++
+ご不明な点がございましたら、+ Q:1602701980で話し合ってください。 +
++++ ++++++++++++++++++++++++++++++++

おすすめ

転載: blog.csdn.net/shenyuye/article/details/107818789