soa cxf解决方案中的代理模式

背景

通过cxf实现SOA间的远程方法调用,项目结构如下图所示:

项目结构

 

  • Site通过cxf调用Service
  • Site、Service依赖Commons包

服务间使用代理模式,可以方便替换RPC框架。且面向接口编程方便切换接口注入。

代理实现

以账户(Account)实现为例。AccountServiceRemoteImpl为代理类,代理AccountServiceImpl实现。UML类图如下所示:

UML类图

包结构

(类图绿色部分)AccountServiceAgent、IAccountService、IAccountWebService、AccountServiceRemoteImpl、AccountServiceRemoteImplWithCache在Commons包中。

(类图蓝色部分)AccountServiceImpl、AccountWebServiceImpl在具体的服务中。

类作用

  • AccountServiceAgent:对外提供服务
  • IAccountService:账户服务接口
  • AccountServiceRemoteImpl:AccountServiceImpl的远程代理类,将响应的内容反序列化为Java对象。(本项目将json格式的String反序列化为Java对象)
  • AccountServiceRemoteImplWithCache:缓存service的成功响应结果
  • AccountServiceImpl:账户服务实现,真正的业务逻辑实现类
  • IAccountWebService:账户服务webservice接口
  • AccountWebServiceImpl:webservice接口实现类,AccountServiceImpl的本地代理类,将Java对象序列化进行响应。(本项目将Java对象序列化为j'son格式的String)

在site中,IAccountService的注入实现为AccountServiceRemoteImpl,需要通过cxf远程调用服务中的实现,如果有service层的缓存,注入实现为AccountServiceRemoteImplWithCache。在service中,IAccountService的注入实现为AccountServiceImpl。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值