我正在考虑将应用程序划分为微服务,但是我不确定哪个部分应该具有自己的微服务,或者我是否应该将多个部分重新组合到同一部分中。
我的课程是:
File:树中的文件。 (不同的子类,例如Folder,Card,但这在这里并不重要)
Tag:文件的分类标记
文件注释:对文件的评论
User:应用程序的用户。
AccessRight:具有不同权限(例如读取,写入,管理,superAdmin)的不同用户的文件访问权限。
我非常确定用户逻辑应该具有它自己的微服务,但是我应该将其他逻辑重新组合成唯一的微服务还是将它们拆分?
我的旧应用程序使用JavaEE和JPA,这些实体位于同一包中。 我现在将使用Spring Boot,现在仍然使用JPA,但是对于微服务而言,使用JPA随附的注释来定义实体之间的差异关系似乎更为棘手,尤其是当模型分为多个微服务时。
这是我的差异类之间的关系。
AccessRight:File和User之间具有right属性的ManyToMany关系。使用JPA,我需要一个带有@IdClass的特殊类来做到这一点。
文件和标签:ManyToMany关系。
FileNote:File和User之间的ManyToMany关系以及其他属性,例如note(在[0-5]之间)和注释。
用户和文件:简单的oneToMany关系,用于定义文件的所有者。
我的申请在这里http://vps603552.ovh.net/ShareUrDoc/root.xhtml可用 它仍在建设中,但您可以使用登录名:test,密码:pass进行连接。
这是一个仅用于教程URL的书签应用程序,允许用户对“其他人”文件夹进行调查。用户还可以将任何用户的文件夹链接到自己的树中,允许其他用户管理他们选择的文件夹,等等。
比您可以激活管理员模式来管理文件。
这是一个github存储库,其中包含我在此描述的类,我仅保留了必不可少的内容。
https://github.com/kaizokun/kaizokun-shareUrDocModelDemo/tree/master/shareurdoc-model
感谢您的建议。