- 30
- 0
因为公司没有精通spring mvc的高手,很多东西都是看网上的资料等自己学的。现在有几点关于项目构架与数据通信上的问题,希望有懂的大神指点指点。
首先按服务内容的不同分别建立项目,比如用于报表展示的BI项目,用于后台管理的CMS项目,用于文件管理的FILE项目等。
对于这点,简单的分类感觉没有问题,但是随着某些项目如CMS等,会随着需求的越来越多,越来越具体,使得项目变得越来越庞大并且不易与重构及优化工作。比如一开始在CMS中可能只是用户和组织数据维护,后面又加入了权限,报表等各种数据的维护,包括理论上是其他项目的如文件管理FILE项目的实际管理及操作界面其实也是集成在该项目中的。
后来在了解spring boot的微服务开发思想后,也想将spring mvc项目改造成为类似的构架。即针对每个功能点来单独建立项目并维护。如CMS就可以拆分成USER用户管理、ORG组织管理、REPORT报表管理、GROUP群组管理等等。
面临问题:
①项目随需求变得越来越大且不易改善。
②项目之间的数据如何互通调用。
目前我自己的想法是将项目按服务类别拆分,如上述的USER、ORG、FILE等都分别建项目管理维护。这种做应该能够在一定程度上解决问题①,使得该问题不需要特别处理。
但是这种操作就会面临问题②,(假设项目已经细化拆分为USER、ORG、FILE等)
举个最简单的例子,比如用户和组织的关系绑定。我在USER项目中会需要使用ORG数据,而在ORG项目中会需要使用USER数据,但是由于我已经分别建项目进行管理维护,而我又不知道项目直接的类如何进行调用,此时我就很难完成这部分功能。(如果有大神知道,请告诉我怎么做!)
比如直接在ORG项目中直接调用USER项目中的service接口如getUsers这样的方法,获取结果List<User>以便使用。
后来我发现可以在后台通过HttpClient来实现迂回的接口调用工作来获取数据,比如我在ORG项目的接口中,通过HttpClient模拟数据请求,请求USER项目的Controller接口(相当于是Service接口)来获取数据。通过这种方式虽然能得到数据,但是仍旧有几个后续处理上的问题。
如获取到的数据是json格式或Map格式,无法直接解析为User实体对象进行数据处理,这样的话在取值赋值、空值判断等操作的时候显得尤为麻烦,并且代码工作量大且不够“优雅”。
另一个问题是这种方式的效率问题,更加浪费内存并且花费时间(这点尤其重要)。
具体就说到这,希望各位不要嫌弃的啰嗦,我也只是希望能够尽量明白的表达我的意思和问题:
如何有效的进行springmvc项目之间的底层数据交互?
最后在补充说明一下,有些人可能会说:你要在ORG项目中使用USER类的对象,那在项目里面建一个一样的User Class不就好了嘛。对,这样确实可以,但是这样做的话我拆分项目的意义呢?而且如果我在很多小项目都要用到的话,就需要在这些项目里都建一份User类,那如果以后User类对应的数据库新加了一个字段怎么办?我在模型中总也要把这个属性加进去吧?这时候的维护工作可不小啊。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

