1 Star 0 Fork 1

zgdkik / multitenant

forked from heidsoft / multitenant 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

spring-boot-multitenant

This is a Spring Boot multi-tenant sample application which supports all multiple-tenancy models. By default multi schema model is enabled. Multi-Tenancy model is enabled using Hibernate multi-tenancy support.

There are multiple well-known strategies to implement this architecture, ranging from highly isolated (like single-tenant) to everything shared. We can implement multi-tenancy using any of the following approaches:

  1. Database per Tenant: Each Tenant has its own database and is isolated from other tenants.
  2. Shared Database, Shared Schema: All Tenants share a database and tables. Every table has a Column with the Tenant Identifier, that shows the owner of the row.
  3. Shared Database, Separate Schema: All Tenants share a database, but have their own database schemas and tables.

By Default Shared Database, Separate Schema approach is enabled. It works with JdbcTemplate also which is not natively supported by Spring Multi-Tenancy. When using Multi-tenancy in Spring Boot Table needs to be created externally. Auto table creation needs to be turned off. We will use Public Schema as the default schema. The DDL to create the table are present in DDL.sql in resources folder.

Note: One Multi-Tenancy is enabled all the DDL needs to be executed manually

Compile and package

Being Maven centric, you can compile and package it without tests using:

mvn clean package -Dmaven.test.skip=true

Once you have your jar file, you can run it.

Run it

To run it you can go to the Maven target folder generated and execute the following command:

java -jar multitenant-XXX.jar

Testing

Once started you can go and request the data using different tenants :

  • curl -X POST http://localhost:8080/ -H 'Content-Type: application/json' -H 'X-TenantID: test1' -d '{"name":"Mumbai"}'

  • curl -X POST http://localhost:8080/ -H 'Content-Type: application/json' -H 'X-TenantID: test2' -d '{"name":"Kolkata"}'

  • curl -X GET http://localhost:8080/ -H 'Content-Type: application/json' -H 'X-TenantID: test1'

  • curl -X GET http://localhost:8080/ -H 'Content-Type: application/json' -H 'X-TenantID: test2'

空文件

简介

Spring Boot Multi-tenant Sample 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/zgdkik/multitenant.git
git@gitee.com:zgdkik/multitenant.git
zgdkik
multitenant
multitenant
master

搜索帮助