开发者社区 问答 正文

如何根据不同的用户使用不同的jdbcTemplate数据源?

公司有一项目,使用的是spring JDBCTemplate 作为数据库连接池,现在需求变更了,需要根据不同的用户访问不同的数据源。 根据用户找出数据库名很容易办到,现在的问题是如何如何在不同的request里面使用不同的数据源?或者说 jdbctemplate 如何做到多数据源? 谢谢大家了。

展开
收起
长安归故里. 2020-01-07 21:05:41 1067 分享 版权
1 条回答
写回答
取消 提交回答
  • org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource这个类就是解决这种问题的。 具体说,实现 protected Object determineCurrentLookupKey()这个方法返回一个key,protected DataSource determineTargetDataSource()这个方法根据你的key找出数据源。 一般是用ThreadLocal保存一个标志,再用这个类,根据标志找出TargetDataSource。对于web应用,一般用filter,请求开始时放入标志,在请求结束后清除标志。

    2020-01-07 21:05:52
    赞同 展开评论
问答分类:
问答地址: