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

php免费网站建设长沙百度推广公司电话

php免费网站建设,长沙百度推广公司电话,vue做的网站域名汇总,政府门户网站开发背景 在微服务李娜一般一个服务只有一个数据源,但是在有的老项目或者一些特定场景需要多数据源链接不同的数据库,本文以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.dinnco.com/news/79173.html

相关文章:

  • 什么是网站独立访问者数量怎么申请网站空间
  • 做网站的图片字虚百度官网
  • 网站解析后怎么做温州seo招聘
  • 上海企业联系方式seo需要付费吗
  • 正规建网站公司提高网站排名
  • 做网站用 jsp还是asp360提交网站收录入口
  • 北京政府网站建设营销策划方案ppt
  • 做网站该读啥学校网站换友链平台
  • 吉林省网站建设百度联盟项目看广告挣钱
  • 做淘宝有没有店小秘类型的网站深圳开发公司网站建设
  • 质量好网站建设公司凡科建站代理登录
  • wordpress 没有模板选项长沙seo研究中心
  • php做网站为什么比java快优秀软文营销案例
  • 网站模板源码免费下载网红推广团队去哪里找
  • 舞钢市住房和城乡建设局网站重庆百度总代理
  • 桂林网站建设培训班网络营销的有哪些特点
  • 鞍山58同城租房网网站打开速度优化
  • 成都官网优化多少钱百度seo排名曝光行者seo
  • 怎么做网站简单的免费大数据网站
  • 威海网站开发公司电话googlechrome
  • 如何做网站条幅闪图百度服务中心官网
  • 自己做博客网站好网站排名英文
  • 个人网站建设方案书 范文电商网站订烟
  • 响应式网站建设如何百度app官方正式版
  • 万年历网站做宝塔没有域名直接做网站怎么弄
  • 平潭综合实验区建设工程网站百度推广客服工作怎么样
  • 自己做模板网站微信推广平台收费标准
  • 百度云网站建设新型网络营销方式
  • 公司网络维护主要做什么百度搜索怎么优化
  • 四川企业品牌网站建设中国十大品牌策划公司