Spring Boot和Spring Data应用程序,在运行时创建了多个DataSource

时间:2015-03-16 22:19:57

标签: java spring spring-mvc spring-boot spring-data

我正在开发一个使用Spring Data JPA的Spring Boot应用程序,需要连接到许多不同的数据库,例如PostreSQL,MySQL,MS-SQL,MongoDB。 我需要在运行时创建所有数据源,即用户在启动的应用程序中通过GUI选择这些数据: -driver(列表之一), -资源, -港口, -用户名, -密码。 毕竟他写本机sql来选择数据库并获得结果。 我在stack和spring论坛中阅读了很多关于它的内容(例如AbstractRoutingDataSource),但所有这些教程都展示了如何从java bean中的xml配置或静态定义创建数据源。可以在运行时创建许多datsource吗?如何管理事务以及如何创建许多sessionFactories?可以使用@Transactional注释吗?这样做的最佳方法是什么?有人可以一步一步解释我如何做到这一点吗?

1 个答案:

答案 0 :(得分:7)

希望答案不会太迟;)

我开发了一个可以轻松集成到任何弹簧项目中的模块。它使用元数据源来保存租户 - 数据源连接详细信息。 对于租户数据源,使用AbstractRoutingDataSource。

在这里,您可以使用AbstractRoutingDataSource找到我的核心实现。 https://github.com/Dactabird/multitenancy

这是一个展示如何集成它的示例。 https://github.com/Dactabird/multitenancy-sample 在这个例子中,我使用H2嵌入式数据库。但是你当然可以随心所欲地使用它。

随意为您的目的修改它或询问是否遗留问题!