账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    springmvc项目之间的数据互通
    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
    • 浪客落尘 普通会员 1楼
      502 Bad Gateway

      502 Bad Gateway


      nginx
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部