javacollection
javacollection
2012-08-17 14:14
浏览 325
已采纳

关于项目分层中的对外服务层问题?高手回答一下,谢谢

我们项目采用 ibatis+spring +springMVC
也是MVC架构。主要分为dao 层 service层 controller层
但是项目现在要与其它系统进行交互。主要是webservice方式,我们提供服务
我现在想问一下,这个对外的服务端层放在那里。是和service层平级吗?
还有就是对外的服务层是调用service还是dao。因为一些功能service已经实现,对外服务层可以直接调用就可以。还有一些service没有的。需要调用dao自己写业务。这个对外服务层如何定义?有经验的麻烦回答一些,谢谢!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • Dead_Knight
    Dead_Knight 2012-08-17 14:44
    已采纳

    考虑后期维护,建议在service平级建立一个package专门提供接口服务。
    接口服务是公布给外系统的,如果该服务在service已经存在,那么只需要调用service,如果不存在,建议在service中填充,然后提供给接口调用。
    这样的结构比较清晰,接口服务仅仅是把需要发布的service发布出去。

    当然也有直接放在service里面的,而且也有直接通过annotation发布接口的.不过后面维护起来就麻烦。
    以上建议仅供参考。根据各自情况,折中选择吧。

    点赞 评论
  • j_clxy
    clxy大叔 2012-08-17 15:11

    我觉得,看你们自己的需求了。废话,哈哈。

    [quote]我们提供服务[/quote]

    你们提供什么服务?

    • 如果只是提供数据库的增删改查的话。当然是DAO。

    • 如果是提供带有逻辑的service,那当然是service了。

    当然,可能现实是比较模糊,或没有那么明确。要么没人说得清,要么两者都有可能。

    无论如何,我建议这个web service单独放个包/子项目好些。

    最低的设计方针是

    • web service的api固定。

    • 具体实现内部根据实际情况调整,直接用DAO,或调用类似的service。

    点赞 评论
  • lizsh08
    yuebancanghai 2012-08-17 15:30

    建议单独建立一个包,维护对外接口。
    我们现在的项目也用webservice对外提供接口调用,目前的做法就是另外建包,维护webservice,理由如下:
    1.你所谓的service ,dao都是对自己系统而言,如果把webservice放在这2层,显然不太合适哈。
    2.另外建包,结构清晰,webservice调用你的service ,dao等信息,这样结构也比较清晰。
    你可以把你的webservice理解成action :wink:

    点赞 评论
  • niuzai12
    andy_zheng2011 2012-08-17 16:23

    亲,你的这个需求不正是wrapper嘛~
    别个才不管你service,还是dao,给我提供webservice wrapper就行~ :evil:

    1.建立一个基于webservice 接口的service.(调用已有的service接口,实现未实现的service接口,也就是为webservice量身定制它的接口)
    2.创建webService wrapper对外发布服务。

    点赞 评论

相关推荐