加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-15 02:33:18 所属栏目:Java 来源:网络整理
导读:我正在开发基于Hibernat 4的多租户应用程序. 我使用单独的数据库解决方 我使用Mysql作为数据库提供程序. 对于每个新租户,我向 mysql添加一个新数据库. 我想在不重新启动应用程序服务器的情况下向我的应用程序添加新租户. 我使用DriverManagerDataSource为每
我正在开发基于Hibernat 4的多租户应用程序.
我使用单独的数据库解决方
我使用Mysql作为数据库提供程序.
对于每个新租户,我向 mysql添加一个新数据库.
我想在不重新启动应用程序服务器的情况下向我的应用程序添加新租户.
我使用DriverManagerDataSource为每个租户创建一个新的数据源,但是这个类不打算在生产中使用?我应该使用哪一堂课?
我想将数据源添加到appserver并使用JNDIdatasource,但问题是我需要为每个新租户重新启动appserver.有没有办法在不重新启动appserver的情况下添加数据源?

解决方法

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

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

<beans>
...
#foreach ( $datasource in $datasources )
  $datasource
#end
...
</beans>

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读