gpt4 book ai didi

java - Multi-Tenancy 应用程序的数据源

转载 作者:搜寻专家 更新时间:2023-11-01 03:42:57 25 4
gpt4 key购买 nike

我正在开发基于 Hibernat 4 的 Multi-Tenancy 应用程序。我使用单独的数据库解决方案。我使用 Mysql 作为数据库提供程序。对于每个新租户,我都会向 mysql 添加一个新数据库。我想在不重新启动应用程序服务器的情况下向我的应用程序添加一个新租户。我使用 DriverManagerDataSource 为每个租户创建一个新的数据源,但是这个类不打算在生产中使用?我应该使用哪个类?我正在考虑将数据源添加到应用程序服务器并使用 JNDI 数据源,但问题是我需要为每个新租户重新启动应用程序服务器。有没有办法在不重启应用服务器的情况下添加数据源?

最佳答案

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

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

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

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

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

关于java - Multi-Tenancy 应用程序的数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10160491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com