【发布时间】:2018-08-05 00:17:19
【问题描述】:
我正在使用 Spring Boot 开发一个多租户应用程序。
系统的业务逻辑将在每个租户的基础上发生变化。
例如,应用程序上的特定租户租赁空间可能希望使用一些复杂的自定义逻辑来更改值的计算方式。我想为应用程序注册默认行为/依赖项并允许特定租户覆盖它。
这可以使用 Spring Boot 完成吗?
【问题讨论】:
-
是的。是的,它可以。
我正在使用 Spring Boot 开发一个多租户应用程序。
系统的业务逻辑将在每个租户的基础上发生变化。
例如,应用程序上的特定租户租赁空间可能希望使用一些复杂的自定义逻辑来更改值的计算方式。我想为应用程序注册默认行为/依赖项并允许特定租户覆盖它。
这可以使用 Spring Boot 完成吗?
【问题讨论】:
这个问题很模糊。但我尝试提供一些指示。似乎有两个不同的问题需要解决:
您需要拥有可动态加载的业务逻辑部分。这些部分需要来自特定于租户的存储,例如文件系统或数据库。解决此问题的一种简单方法可能是 Java ScriptEngine,它可以加载计算/逻辑脚本并执行它。更全面的方法是业务规则引擎。有好几个,有的和spring集成的,你可以google一下找资源。
您需要可感知租户的数据访问,最有可能是数据库访问。这包括
总结一下:Spring (Boot) 对它没有直接的帮助,但是通过上面的提示,您可以开始研究在使用 Spring Boot 时自己实现它。
【讨论】:
看看这个:
https://github.com/singram/spring-boot-multitenant
我认为如果您使用的是 Spring Boot,它可能是一个 Web 应用程序。所以携带Tenant-ID和http/header,可以使用不同的数据源。
逻辑上,你可以通过 RestController 地址或在 header/body/url 中携带的 Tenant-ID 来区分你的租户
【讨论】: