springboot如何根据请求参数,切换不同的mysql数据源?

1.一共三个工厂,三个工厂对应三个不同的数据库
2.数据库表结构一模一样(约等于复制了3分,只是记录不同而已)
3.前端选择工厂后,调用接口(一个需要频繁调用,30秒一次的展示系统)要走该工厂对应的数据库

因为涉及到频繁调用,怎么实现比较好,是不是每个请求接口都要判断工厂呀,判断完了再切换?

阅读 2.5k
2 个回答

后端定义三个数据库的枚举,前端切换以后将当前的数据库的枚举存到session里面,然后写个aop在你需要切换数据库的方法上做个拦截,根据当前用户session里面的数据库种类,动态更换dataSource,可以使用spring提供的AbstractRoutingDataSource类实现。

我理解,即使频繁调用也不影响因为一般程序都是从数据源的连接池来取得连接,不会有很大的性能上的问题, 所以可以根据接口来进行判断,动态的切换数据源。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题