相关技术:extjs、spring、ibatis、JSON
特点:
A. 实现服务调用全过程,使用者只需关心业务部分。
B. 对方法调用返回值、异常结合JSON和客户端js特点进行了封装。
C. 实现了很简单易用的分行业接口调用。
D. 基于spring注入,各层次间松耦合、可配置。
分包:
1) Dao:数据访问
2) Domain:领域模型
3) Service:服务
a) Controller:控制类
b) Handler:服务处理接口
调用层次:
1) 普通用户使用:Client --- > [service proxy] ---- > Controller ---- > Handler ---- > Dao
2) API调用:caller ---- > [another service proxy] ---- > 可选… ---- > Handler ---- > Dao
Controller层次与HttpServlet相关。
Handler层次与具体调用者无关,处理业务流程。(handler命名感觉不合适,但service已经被包名使用了,当理解为service的handle集合。)
[service proxy]为服务代理,实现接口
IServiceProxy
,处理前端控制器分发的请求。
IHttpServletServiceProxy
扩展
IServiceProxy
,在我们的系统中使用
IHttpServletServiceProxy
,而外部的
API
调用,则需要新增一个
IServiceProxy
的实现来处理具体的通讯协议。