構成ファイルapplication.properties 1、2つのデータソース
#默认使用のtomcat-JDBC
spring.datasource.type = org.apache.tomcat.jdbc.pool.DataSource
spring.datasource.data1.url = JDBCます。mysql://127.0.0.1:3306 / mysqlのブート
spring.datasource。 data1.username =ルート
spring.datasource.data1.password = 123123
spring.datasource.data1.driverクラス名=はcom.mysql.jdbc.Driver
spring.datasource.data2.url = JDBCます。mysql://127.0.0.1 :3306 / mysqlの-confswh
spring.datasource.data2.username =ルート
spring.datasource.data2.password = 123123
spring.datasource.data2.driver-クラス名=はcom.mysql.jdbc.Driver
設定するには、パッケージのデータソース、新しいDataSource1、DataSource2二つのファイル、注釈データソースを作成するには2、
DataSource1
パッケージcom.springboot.datasource。
輸入org.apache.ibatis.session.SqlSessionFactory;
輸入org.mybatis.spring.SqlSessionFactoryBean。
輸入org.mybatis.spring.SqlSessionTemplate。
輸入org.mybatis.spring.annotation.MapperScan;
輸入org.springframework.beans.factory.annotation.Qualifier;
輸入org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder。
輸入org.springframework.boot.context.properties.ConfigurationProperties。
輸入org.springframework.context.annotation.Bean。
輸入org.springframework.context.annotation.Configuration。
インポートorg.springframework.context.annotation.Primary;
インポートorg.springframework.jdbc.datasource.DataSourceTransactionManager;
インポートするjavax.sql.DataSource;
@Configuration // ばね容器に注釈
@MapperScan(basePackages =「com.springboot.data1.mapper "sqlSessionFactoryRef =" data1SqlSessionFactory " )
パブリック クラスDataSource1 {に
/ **
*返さデータベースのデータソースDATA1は
* @return
* /
@Bean(名 =" data1Source " )
@Primary // プライマリデータソース
@ConfigurationProperties(接頭辞="スプリング.datasource.data1 " )
公衆データソースのデータソース(){
戻ります)(DataSourceBuilder.createを構築します()。
}
/ **
*返回DATA1数据库的会话工厂
* @param DS
* @return
* @throws 例外
* /
@Bean(名前は = "data1SqlSessionFactory" )
@Primary
公共 SqlSessionFactory sqlSessionFactory(@Qualifier( "data1Source")のDataSource dsは)スロー例外{
SqlSessionFactoryBeanビーン = 新しいSqlSessionFactoryBean()。
bean.setDataSource(DS)。
返す bean.getObjectを();
}
/ **
* DATA1テンプレートデータベースのセッションを返します
* @param のSessionFactory
* @return
* @throws 例外
* /
@Bean(名前 = "data1SqlSessionTemplate" )
@Primary
公共 SqlSessionTemplate SqlSessionTemplate(@Qualifier( "data1SqlSessionFactory")SqlSessionFactoryのSessionFactory)スロー 例外を{
返す 新しい新SqlSessionTemplate(のSessionFactory);
}
/ **
*トランザクションデータベースのデータ1を返す
* @paramのDS
* @return
* /
@Bean(名前= "data1TransactionManager" )
@Primary
公共 DataSourceTransactionManagerのTransactionManager(@Qualifier( "data1Source" )データソースDS){
戻り 新しい)DataSourceTransactionManager(DSと、
}
}
DataSource2:
package com.springboot.datasource;
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.autoconfigure.jdbc.DataSourceBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import javax.sql.DataSource;
@Configuration//注解到spring容器中
@MapperScan(basePackages = "com.springboot.data2.mapper",sqlSessionFactoryRef = "data2SqlSessionFactory")
public class DataSource2 {
/**
* 返回data2数据库的数据源
* @return
*/
@Bean(name="data2Source")
@ConfigurationProperties(prefix = "spring.datasource.data2")
public DataSource dataSource(){
return DataSourceBuilder.create().build();
}
/**
* 返回data2数据库的会话工厂
* @param ds
* @return
* @throws Exception
*/
@Bean(name = "data2SqlSessionFactory")
public SqlSessionFactory sqlSessionFactory(@Qualifier("data2Source") DataSource ds) throws Exception{
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(ds);
return bean.getObject();
}
/**
* 返回data2数据库的会话模板
* @param sessionFactory
* @return
* @throws Exception
*/
@Bean(name = "data2SqlSessionTemplate")
public SqlSessionTemplate sqlSessionTemplate(@Qualifier("data2SqlSessionFactory") SqlSessionFactory sessionFactory) throws Exception{
return new SqlSessionTemplate(sessionFactory);
}
/**
* 返回data2数据库的事务
* @param ds
* @return
*/
@Bean(name = "data2TransactionManager")
public DataSourceTransactionManager transactionManager(@Qualifier("data2Source") DataSource ds){
return new DataSourceTransactionManager(ds);
}
}
3、测试 Service&Mapper
@RequestMapping("getTopicList")
public List<Map<String,Object>> getTopicList(){
List<Map<String,Object>> list1 = userServiceData1.getTopicListData1();
List<Map<String,Object>> list2 = userServiceData2.getTopicListData2();
return list1;
}
https://www.cnblogs.com/lijianda/p/11022892.html
附: