当前位置: 首页 > news >正文

东莞微信网站wdcp搭建网站教程

东莞微信网站,wdcp搭建网站教程,互联网创业平台有哪些,中国十大最著名室内设计师背景 在微服务李娜一般一个服务只有一个数据源,但是在有的老项目或者一些特定场景需要多数据源链接不同的数据库,本文以mybatisPlus为基础给出解决方案 多数据源场景分类 情形一:项目启动就确定了情形一:一些sass系统里面动态确…

背景

在微服务李娜一般一个服务只有一个数据源,但是在有的老项目或者一些特定场景需要多数据源链接不同的数据库,本文以mybatisPlus为基础给出解决方案

多数据源场景分类

  • 情形一:项目启动就确定了
  • 情形一:一些sass系统里面动态确定的,比如说运行时建立的数据源,还有一些报表场景也是如此 本文暂不讨论相关

解决方案(本人都有使用过):

1.mybatisPlus官网提供的 提供框架,使用是使用注解切换 缺点很大,不建议

2.使用sharding等分库分表工具,这个是可以用来当做多数据源的解决方案的

3.分包 本文使用次方案

项目环境

springboot3.x mybatisPlus3.5.3(低于该版本会有问题,因为spring有的类被删除了会报错)

讲道理23年使用springboot3.x不应该使用mybatis的,mybatis目前还不支持native编译,但是本文属于后端项目,不适用native也无所谓

配置文件

master配置

@Configuration
@MapperScan(basePackages = "com.git.mapper.mysql", sqlSessionTemplateRef = "masterSqlSessionTemplate")
public class MasterDataSourceConfig {@Bean(name = "masterDataSource")@ConfigurationProperties(prefix = "spring.datasource.hikari.master")public DataSource masterDataSource() {return DataSourceBuilder.create().build();}@Bean(name = "masterSqlSessionFactory")@Primarypublic SqlSessionFactory masterSqlSessionFactory(@Qualifier("masterDataSource") DataSource dataSource) throws Exception {MybatisSqlSessionFactoryBean sessionFactoryBean = new MybatisSqlSessionFactoryBean();//MybatisSqlSessionFactoryBean这个要换成mybatisPlus的,不然没有一些通用sql的功能sessionFactoryBean.setDataSource(dataSource);sessionFactoryBean.setGlobalConfig(masterGlobalConfig());sessionFactoryBean.setPlugins(masterPlusInterceptor());sessionFactoryBean.setVfs(SpringBootVFS.class);//还能设置xml扫描路径,别名配置等,本文比较野直接注解return sessionFactoryBean.getObject();}@Bean("masterTransactionManager")@Primary// 数据源事务管理器public DataSourceTransactionManager masterTransactionManager(@Qualifier("masterDataSource") DataSource dataSource) {return new DataSourceTransactionManager(dataSource);}@Bean(name = "masterSqlSessionTemplate")@Primarypublic SqlSessionTemplate masterSqlSessionTemplate(@Qualifier("masterSqlSessionFactory") SqlSessionFactory sqlSessionFactory) {return new SqlSessionTemplate(sqlSessionFactory);}@Bean("masterGlobalConfig")public GlobalConfig masterGlobalConfig() {GlobalConfig globalConfig = new GlobalConfig();return globalConfig;}/*** 分页插件*/@Bean("masterPlusInterceptor")public MybatisPlusInterceptor masterPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));return interceptor;}}

slave配置

@Configuration
@MapperScan(basePackages = "com.git.mapper.sqlserver", sqlSessionTemplateRef = "slaveSqlSessionTemplate")
public class SlaveDataSourceConfig {@Bean(name = "slaveDataSource")@ConfigurationProperties(prefix = "spring.datasource.hikari.slave")public DataSource slaveDataSource() {return DataSourceBuilder.create().build();}@Bean(name = "slaveSqlSessionFactory")public SqlSessionFactory slaveSqlSessionFactory(@Qualifier("slaveDataSource") DataSource dataSource) throws Exception {MybatisSqlSessionFactoryBean sessionFactoryBean = new MybatisSqlSessionFactoryBean();sessionFactoryBean.setDataSource(dataSource);sessionFactoryBean.setGlobalConfig(slaveGlobalConfig());sessionFactoryBean.setPlugins(slavePlusInterceptor());sessionFactoryBean.setVfs(SpringBootVFS.class);return sessionFactoryBean.getObject();}@Bean("slaveTransactionManager")// 数据源事务管理器public DataSourceTransactionManager slaveTransactionManager(@Qualifier("slaveDataSource") DataSource dataSource) {return new DataSourceTransactionManager(dataSource);}@Bean(name = "slaveSqlSessionTemplate")public SqlSessionTemplate slaveSqlSessionTemplate(@Qualifier("slaveSqlSessionFactory") SqlSessionFactory sqlSessionFactory) {return new SqlSessionTemplate(sqlSessionFactory);}@Bean("slaveGlobalConfig")public GlobalConfig slaveGlobalConfig() {GlobalConfig globalConfig = new GlobalConfig();return globalConfig;}/*** 分页插件*/@Bean("slavePlusInterceptor")public MybatisPlusInterceptor slavePlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.SQL_SERVER));return interceptor;}
}

mapper包配置

使用与普通的mybatisPlus一样

在这里插入图片描述

注意事项

手动配置多数据源不会配置何解?

直接看mybatisPlus的自动配置

com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration#sqlSessionFactory

关联文章:

spring如何管理mybatis的事务

mybatis源码考究二(sqlsession线程安全和缓存失效)

本文为原创,转载请申明

http://www.yayakq.cn/news/181495/

相关文章:

  • 合肥网站建设程序东莞建设银行官方网站
  • 营销型网站建设的重要原则自己开公司
  • 上海公司建立网站做笑话网站赚钱吗
  • 大连网站建设顾问交互设计是什么意思
  • 杭州网络公司网站建设做视频网站需要什么空间
  • 为食堂写个网站建设网站备案org
  • 投诉网站建设广告页面设计图片
  • 网站如何进行备案益阳网站建设方案
  • 温州外贸网站制作太原小店区最新消息今天
  • 网站做长连接网站绑定公众号
  • 鞍山网站哪家好百度店铺免费入驻
  • 专业网站建设定制公司怎么修改网站域名
  • 网站关键词优化怎么做的wordpress 免费模板
  • 福建省华荣建设集团有限公司网站贵阳网站设计模板
  • 宁波网站建设优化企业推荐网站外链建设工作计划
  • 188旅游网站源码传统网站布局
  • 网站设计多少钱一个网站设计岗位的职责与要求
  • 看电视剧的免费网站新型门窗网站模板
  • 广告建设网站建设小游戏网页版链接
  • 云南seo整站优化报价网站建设后台cms管理系统方案
  • 视频网站程序国家工商局企业查询系统官网
  • 酷站wordpress邮件有<>
  • 制作大型网站开发网络运维工资一般多少
  • 打开网站显示建设中phpcms 安装官网的教程更换域名后网站图片还是无法显示
  • 莆田做网站公司电话北京做网站比较大的公司
  • 广州建设工程网站杭州 高端网站 开发
  • 公司网站首页模板创造与魔法官方网站一起做喜欢的事
  • 哪些网上订餐的网站做的好做国际网站花钱吗
  • 淄博微网站开发大型租车门户网站商业版源码
  • 诚信网站体系建设工作总结网站开发人员是干什么的