方案1
通过MyBatis配置文件创建读写分离两个DataSource,每个SqlSessionFactoryBean对象的mapperLocations属性制定两个读写数据源的配置文件。将所有读的操作配置在读文件中,所有写的操作配置在写文件中。
方案2
通过Spring AOP在业务层实现读写分离,在DAO层调用前定义切面,利用Spring的AbstractRoutingDataSource解决多数据源的问题,实现动态选择数据源
方案3
通过Mybatis的Plugin在业务层实现数据库读写分离,在MyBatis创建Statement对象前通过拦截器选择真正的数据源,在拦截器中根据方法名称不同(select、update、insert、delete)选择数据源。
方案4
如果你的后台结构是spring+mybatis,可以通过spring的AbstractRoutingDataSource和mybatis Plugin拦截器实现非常友好的读写分离,原有代码不需要任何改变。推荐第四种方案
https://blog.youkuaiyun.com/u010681191/article/details/79748173
本文探讨了四种在Spring和MyBatis框架下实现数据库读写分离的策略:配置文件分离DataSource、Spring AOP切面编程、MyBatis Plugin拦截器和混合使用AbstractRoutingDataSource与Plugin。详细介绍了每种方法的原理和适用场景,推荐第四种方式以最小改动应对读写分离需求。
1万+

被折叠的 条评论
为什么被折叠?



