赞
踩
大家好,最近有个需求,就是一套系统,给不同公司使用,还要数据隔离,所以就设计了这种多租户模式,使用请求不同,访问的数据源也不同的多租户模式,下面让我们来一起看一下,是否对你有所启发...
先默认连接一个数据库,数据库里面有一个数据源配置表,配置了所有租户的不同数据源,在启动项目的时候初始化连接这些数据源,放在一个集合中,然后不同租户的请求要在请求头设置一个参数,在请求的时候拦截这个参数,来控制访问的数据源,就是这么简单。
首先设置一套动态数据源保存地方
- public class DynamicDataSource extends AbstractRoutingDataSource {
-
- // 存储数据源
- private Map<Object, Object> targetDataSources = new HashMap<Object, Object>();
-
- @Override
- protected DataSource determineTargetDataSource() {
- return super.determineTargetDataSource();
- }
-
- /**
- * 配置DataSource, defaultTargetDataSource为主数据库
- */
- public DynamicDataSource(DataSource defaultTargetDataSource, Map<Object, Object> targetDataSources) {
- super.setDefaultTargetDataSource(defaultTargetDataSource);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。