java 租户_java – 多租户应用程序的数据源

我正在开发基于Hibernat 4的多租户应用程序.

我使用单独的数据库解决方

我使用Mysql作为数据库提供程序.

对于每个新租户,我向mysql添加一个新数据库.

我想在不重新启动应用程序服务器的情况下向我的应用程序添加新租户.

我使用DriverManagerDataSource为每个租户创建一个新的数据源,但是这个类不打算在生产中使用?我应该使用哪一堂课?

我想将数据源添加到appserver并使用JNDIdatasource,但问题是我需要为每个新租户重新启动appserver.有没有办法在不重新启动appserver的情况下添加数据源?

解决方法:

为了直接回答您的问题,您可以通过JMX公开您的应用程序上下文并以编程方式对其进行修改.这样做的问题是更改将是暂时的,即如果重新启动服务器,它们将不会保留.

另一种选择是以编程方式修改底层xml文件(假设您使用的是xml)并在应用程序上下文中调用refresh().例如,您可以使用数据源的占位符创建速度模板:

...

#foreach ( $datasource in $datasources )

$datasource

#end

...

然后,您将所有必需数据源的列表传递给velocity,然后生成更新的datasource-context.xml

但正如其他用户指出的那样,这不是一个好主意,最好采用分区或其他方法

标签:java,spring,hibernate,datasource,multi-tenant

来源: https://codeday.me/bug/20190709/1415744.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值