springboot双数据源

不点 阅读:665 2021-04-01 11:16:18 评论:0

1.设置主数据源

@Configuration 
@MapperScan(basePackages="***.dao.m", sqlSessionFactoryRef="mainSqlSessionFactory") 
public class DataSourceMainConfig 
{ 
	@Primary													//表示这个数据源是默认数据源 
	@Bean("mainDataSource")										//将这个对象放入Spring容器中 
	@ConfigurationProperties(prefix="spring.datasource.main")	//读取配置文件中的参数,并指定参数名的前缀 
	public DataSource getDataSource() 
	{ 
		return DataSourceBuilder.create().build(); 
	} 
	 
	@Primary 
	@Bean("mainSqlSessionFactory") 
	public SqlSessionFactory mainSqlSessionFactory(@Qualifier("mainDataSource") DataSource datasource) throws Exception 
	{ 
		SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); 
		bean.setDataSource(datasource); 
		bean.setMapperLocations( new PathMatchingResourcePatternResolver().getResources("classpath:***/mapper/m/*.xml"));	//xml位置 
		return bean.getObject(); 
	} 
	 
	@Primary 
	@Bean("mainSqlSessionTemplate") 
	public SqlSessionTemplate mainSqlSessionTemplate(@Qualifier("mainSqlSessionFactory") SqlSessionFactory sessionfactory) 
	{ 
		return new SqlSessionTemplate(sessionfactory); 
	} 
} 
 

2.设置第二个数据源

@Configuration 
@MapperScan(basePackages="***.dao.s", sqlSessionFactoryRef="secondSqlSessionFactory") 
public class DataSourceVocConfig 
{ 
	@Bean("secondDataSource")										//将这个对象放入Spring容器中 
	@ConfigurationProperties(prefix="spring.datasource.second")	//读取配置文件中的参数,并指定参数名的前缀 
	public DataSource getDataSource() 
	{ 
		return DataSourceBuilder.create().build(); 
	} 
	 
	@Bean("secondSqlSessionFactory") 
	public SqlSessionFactory vocSqlSessionFactory(@Qualifier("secondDataSource") DataSource datasource) throws Exception 
	{ 
		SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); 
		bean.setDataSource(datasource); 
		bean.setMapperLocations( new PathMatchingResourcePatternResolver().getResources("classpath:***/mapper/s/*.xml"));	//xml位置 
		return bean.getObject(); 
	} 
	 
	@Bean("secondSqlSessionTemplate") 
	public SqlSessionTemplate vocSqlSessionTemplate(@Qualifier("secondSqlSessionFactory") SqlSessionFactory sessionfactory) 
	{ 
		return new SqlSessionTemplate(sessionfactory); 
	} 
} 
标签:Spring Boot
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号