先写个疑问,以前学习过程中的action.do 和 dubbo暴露的服务的差别在什么地方?
传统action.do
<bean id="demoService" class="com.demo.DemoServiceImpl" />
<bean id="demoAction" class="com.action.DemoAction">
<property id="demoService" ref="demoService" />
</bean>
dubbo方式
#服务提供者
<!-- 和本地提供服务一样提供远程服务 -->
<bean id="demoService" class="com.demo.DemoServiceImpl" />
<!-- 增加暴露远程服务配置 -->
<dubbo:service interface="com.demo.DemoService" ref="demoService" />
#服务调用者
<!-- 增加引用远程服务配置 -->
<dubbo:reference id="demoService" interface="com.demo.DemoService" />
<!-- 和本地调用服务一样消费服务 -->
<bean id="demoAction" class="com.action.DemoAction">
<property id="demoService" ref="demoService" />
</bean>
其实都是一样的,本地action是调用本地的service服务,而dubbo方式实现了注入远程的service服务。用常听到的一句话,dubbo像调用本地服务一样调用远端服务
所以我提的这个问题就是错误的,他们根本不是一个层面的,根本不用比较,应该这么问dubbo提供了什么好处?
那就是 “dubbo像调用本地服务一样调用远端服务 ”
再来讲一个框架
<!-- 测试 -->
<dubbo:service ref="zyServiceFlow" group="zyService" interface="com.ifp.core.flow.service.FlowService" version="${dubbo.registry.version}" />
<bean id="zyServiceFlow" class="com.ifp.core.flow.service.impl.FlowServiceImpl">
<property name="businessLogic" ref="zyDomain.service.zyTest" />
</bean>
可以看出它的思想,执行的方法直接成为暴露服务的参数,所以客户端调用duubo暴露的zyService服务时,直接就执行远端的zyService."function",只能说这样的的方式有一定的使用区域吧,对于远端调用来说直接调用dubbo reference id就可以执行确定的 功能。小白继续学习,做个总结先。
参考:https://blog.csdn.net/SilenceCarrot/article/details/66967755 感谢