e();
dataSource.setAppName(properties.getAppName());
dataSource.setSharding(properties.getSharding());
dataSource.setDynamicRule(properties.getDynamicRule());
dataSource.init();
return dataSource;
}
//二、创建SqlSessionFactory
@Bean(name = "sqlSessionFactory1")
@Primary
public SqlSessionFactory sqlSessionFactoryBean1() throws Exception {
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(dataSource1());
sqlSessionFactoryBean.setMapperLocations(resolveMapperLocations(new String[]{"classpath:mapper/*.xml"}));
return sqlSessionFactoryBean.getObject();
}
//四、 创建事务管理器
@Bean(name = "txManager1")
@Primary
public PlatformTransactionManager txManager1(@Qualifier("dataSource1")DataSource dataSource) {
System.out.println("-----------dataource-----" + dataSource.toString());
return new DataSourceTransactionManager(dataSource);
}
@Bean("sqlSessionTemplate1")
@Primary
public SqlSessionTemplate sqlSessionTemplate(@Qualifier("sqlSessionFactory1")SqlSessionFactory sqlSessionFactory) {
System.out.println("-----------sqlSessionFactory-----" + sqlSessionFactory.toString());
return new SqlSessionTemplate(sqlSessionFactory);
}
}
数据源二配置:
//三、设置扫描器
@MapperScan(basePackages = "com.alibaba.gh.web.speech.mapper", sqlSessionFactoryRef = "sqlSessionFactory2")
public class TddlAutoConfiguration2 {
@Autowired
private TddlProperties properties;
//一、创建数据源
@Bean(name = "dataSource2")
public DataSource dataSource2() throws TddlException {
TDataSource dataSource = new TDataSource();
dataSource.setAppName(properties.getAppName());
dataSource.setSharding(properties.getSharding());
dataSource.setDynamicRule(properties.getDynamicRule());
dataSource.init();
return dataSource;
}
//二、创建SqlSessionFactory
@Bean(name = "sqlSessionFactory2")
public SqlSessionFactory sqlSessionFactoryBean1() throws Exception {
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(dataSource2());
sqlSessionFactoryBean.setMapperLocations(resolveMapperLocations(new String[] { "classpath:mapper2/*.xml" }));
return sqlSessionFactoryBean.getObject();
}
// 四、创建事务管理器
@Bean(name = "txManager2")
public PlatformTransactionManager txManager1(@Qualifier("dataSource2") DataSource dataSource) {
System.out.println("-----------dataource-----" + dataSource.toString());
return new DataSourceTransactionManager(dataSource);
}
@Bean("sqlSessionTemplate2")
public SqlSessionTemplate sqlSessionTemplate(@Qualifier("sqlSessionFactory2")SqlSessionFactory sqlSessionFactory) {
System.out.println("-----------sqlSessionFactory-----" + sqlSessionFactory.toString());
return new SqlSessionTemplate(sqlSessionFactory);
}
}
另外SqlSessionTemplate是对SqlSessionFactory的一个包装,这里每个数据源也配置了一个,如果想使用它的话,只需要修改@mapperscan,设置sqlSessionTemplateRef替换sqlSessi