实现目标:一写多读,读可以任意配置多个,默认都是从写库中进行操作,只有符合条件的方法(指定的目标方法或者标有指定注解的方法才会从读库中操作)。独立打成一个jar包放入本地仓库。,实现原理:通过aop。,pointcut:定义切点,那些方法是需要拦截(从读库中操作)。,master:写库配置。,slaves:读库配置(List集合)。,通过aop动态设置context的内容值,0为从写库中操作,其它的都在读库中操作。,BaseSlaveLoad类为到底从那个读库中选取的一个算法类,默认实现使用的是轮询算法。,这里定义一个抽象类注入了读库列表,所有的实现类从该类中继承即可。,配置成Bean,应该切点需要动态配置,所以这里采用spring aop的方式来配置,这里的RWConfig为我们上面的配置类,有@SlaveDB的注解方法或类都会从读库中操作。,到此读写分离组件开发完成。,引入依赖,启动类添加注解开启读写分离功能,测试:,第一次查询:,图片,第二次查询:,图片,为了区别两个从库设置不同的数据,这里是写库,
文章版权声明
1 原创文章作者:cmcc,如若转载,请注明出处: https://www.52hwl.com/28833.html
2 温馨提示:软件侵权请联系469472785#qq.com(三天内删除相关链接)资源失效请留言反馈
3 下载提示:如遇蓝奏云无法访问,请修改lanzous(把s修改成x)
4 免责声明:本站为个人博客,所有软件信息均来自网络 修改版软件,加群广告提示为修改者自留,非本站信息,注意鉴别