【SpringBoot】springboot整合多数据拆分思路及使⽤分包⽅
式拆分数据源
⼀、springboot整合多数据拆分思路
1、多数据源:就是⼀个项⽬中使⽤多个jdbc连接不同的数据库;
例举:⼀个公司有两个数据库,⼀个是专门存放共同配置⽂件的数据库,⼀个是数据库垂直业务数据库。(垂直:根据业务划分具体数据库)
2、在⼀个项⽬中如何划分多数据源:分包名(业务)划分,或者通过注解⽅式划分
其实也就是怎么区别这个⽅法或者这个类具体⽤的哪个数据库
⼆、使⽤分包⽅式拆分数据源
1、遇到⼀些⼩⿇烦:⾸先配置⽂件⾥url要改成jdbc-url
2、项⽬结构
3、application.properties⽂件配置
pe=com.zaxxer.hikari.HikariDataSource
###datasource1
st1.jdbc-url=jdbc:mysql://localhost:3306/test01?useUnicode=true&characterEnc
oding=utf8&serverTimezone=UTC st1.sql.jdbc.Driver
st1.username=root
st1.password=root
###datasource1
st2.jdbc-url=jdbc:mysql://localhost:3306/test02?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC st2.sql.jdbc.Driver
st2.username=root
st2.password=root
4、datasourceconfig⽂件内容
package com.ssrtest04.datasource;
import org.apache.ibatis.session.SqlSessionFactory;
batis.spring.SqlSessionFactoryBean;
batis.spring.SqlSessionTemplate;
batis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.t.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import t.annotation.Bean;
import t.annotation.Configuration;
import t.annotation.Primary;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import javax.sql.DataSource;
@Configuration//注册到springboot容器中
@MapperScan(basePackages="st01",sqlSessionFactoryRef="test1SqlSessionFactory")
public class DataSource1Config{
/**
*@methodDesc:功能描述:(配置test1数据库)
*@methodDesc:功能描述:(配置test1数据库)
*/
@Bean(name="test1DataSource")
@Primary
@ConfigurationProperties(prefix="st1")
public DataSourcetest DataSource(){
ate().build();
}
/**
*
*@methodDesc:功能描述:(test1sql会话⼯⼚)
*/
@Bean(name="test1SqlSessionFactory")
public SqlSessionFactorytest SqlSessionFactory(@Qualifier("test1DataSource")DataSource dataSource) throwsException{
SqlSessionFactoryBean bean=new SqlSessionFactoryBean();
bean.setDataSource(dataSource);
//bean.setMapperLocations(
//newPathMatchingResourcePatternResolver().getResources("classpath:mybatis/mapper/test1/*.xml"));
Object();
}
/**
*
*@methodDesc:功能描述:(test1事物管理)
*/
@Bean(name="test1TransactionManager")
public DataSourceTransactionManagertest TransactionManager(@Qualifier("test1DataSource")DataSource dataSource){ return new DataSourceTransactionManager(dataSource);
}
@Bean(name="test1SqlSessionTemplate")
public SqlSessionTemplatetest SqlSessionTemplate(
@Qualifier("test1SqlSessionFactory")SqlSessionFactory sqlSessionFactory)throwsException{
return new SqlSessionTemplate(sqlSessionFactory);
springboot结构} }
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论