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で話し合ってください。 +
++++ ++++++++++++++++++++++++++++++++