如何创建并优化网站以吸引用户访问十大热门的微信小程序游戏?
摘要:网站如何做移动网站,十大微信小程序游戏,上海注册公司收费,甘孜建设机械网站首页背景 在微服务李娜一般一个服务只有一个数据源,但是在有的老项目或者一些特定场景需要多数据源链接不同的数据库&#xff
网站如何做移动网站,十大微信小程序游戏,上海注册公司收费,甘孜建设机械网站首页背景
在微服务李娜一般一个服务只有一个数据源#xff0c;但是在有的老项目或者一些特定场景需要多数据源链接不同的数据库#xff0c;本文以mybatisPlus为基础给出解决方案
多数据源场景分类
情形一#xff1a;项目启动就确定了情形一#xff1a;一些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线程安全和缓存失效)
本文为原创转载请申明
