我们项目采用 ibatis+spring +springMVC
也是MVC架构。主要分为dao 层 service层 controller层
但是项目现在要与其它系统进行交互。主要是webservice方式,我们提供服务
我现在想问一下,这个对外的服务端层放在那里。是和service层平级吗?
还有就是对外的服务层是调用service还是dao。因为一些功能service已经实现,对外服务层可以直接调用就可以。还有一些service没有的。需要调用dao自己写业务。这个对外服务层如何定义?有经验的麻烦回答一些,谢谢!
考虑后期维护,建议在service平级建立一个package专门提供接口服务。
接口服务是公布给外系统的,如果该服务在service已经存在,那么只需要调用service,如果不存在,建议在service中填充,然后提供给接口调用。
这样的结构比较清晰,接口服务仅仅是把需要发布的service发布出去。
当然也有直接放在service里面的,而且也有直接通过annotation发布接口的.不过后面维护起来就麻烦。
以上建议仅供参考。根据各自情况,折中选择吧。
我觉得,看你们自己的需求了。废话,哈哈。
[quote]我们提供服务[/quote]
你们提供什么服务?
如果只是提供数据库的增删改查的话。当然是DAO。
如果是提供带有逻辑的service,那当然是service了。
当然,可能现实是比较模糊,或没有那么明确。要么没人说得清,要么两者都有可能。
无论如何,我建议这个web service单独放个包/子项目好些。
最低的设计方针是
web service的api固定。
具体实现内部根据实际情况调整,直接用DAO,或调用类似的service。
建议单独建立一个包,维护对外接口。
我们现在的项目也用webservice对外提供接口调用,目前的做法就是另外建包,维护webservice,理由如下:
1.你所谓的service ,dao都是对自己系统而言,如果把webservice放在这2层,显然不太合适哈。
2.另外建包,结构清晰,webservice调用你的service ,dao等信息,这样结构也比较清晰。
你可以把你的webservice理解成action :wink:
亲,你的这个需求不正是wrapper嘛~
别个才不管你service,还是dao,给我提供webservice wrapper就行~ :evil:
1.建立一个基于webservice 接口的service.(调用已有的service接口,实现未实现的service接口,也就是为webservice量身定制它的接口)
2.创建webService wrapper对外发布服务。