深入spring Integration集成远程调用RMI原理
2021-03-13 13:31
标签:inf 参数 cee 形式 实现继承 ast red 一个 cep pojo java Bean pojo java Bean 服务端返回的的信息为:succes 服务端打印 Order{item=‘davidwang‘, qty=456, orderDate=2020-07-17T13:58:45.464} java rmi 服务通过实现Remote接口来具有提供rmi的功能,真实的服务实现了UnicastRemoteObject接口,使之具有发布服务的功能,最后使用LocateRegistry注册和Naming服务来绑定服务。 pojo javaBean pojo javaBean create order: Order{item=‘davidwang‘, qty=456, orderDate=2020-07-17T14:20:59.274} 客户端打印: org.springframework.context.annotation.internalConfigurationAnnotationProcessor spring 封装了java rmi的实现,在服务端使用RmiServiceExporter来发布服务,客户端使用RmiProxyFactoryBean来获取服务。 分别从服务端RmiServiceExporter和客户端RmiProxyFactoryBean来分析 RmiServiceExporter实现了InitializingBean,在bean初始化时,实现了afterPropertiesSet方法。具体实现直接引用prepare()方法。 客户端RmiProxyFactoryBean继承自RmiClientInterceptor,通过实现InitializingBean的afterPropertiesSet()方法,具体的实现在prepare方法。 深入spring Integration集成远程调用RMI原理 标签:inf 参数 cee 形式 实现继承 ast red 一个 cep 原文地址:https://blog.51cto.com/15015181/2556236一、RMI 远程方法调用
java RMI实例
服务端
服务,继承了Remote接口
服务实现继承了UnicastRemoteObject,可以实现服务发布功能。
服务器客户端
服务,继承了Remote接口
客户端测试
此时,客户端打印
小结
Spring RMI实例
服务端
服务
服务实现
启动服务端
RmiServiceExporter(服务端,使用UnicastRemoteObject.exportObject()发布)客户端
服务
测试类
RmiProxyFactoryBean(客户端,自动调用getObject()方法获取代理类)
此时服务端打印:
org.springframework.context.annotation.internalAutowiredAnnotationProcessor
org.springframework.context.annotation.internalCommonAnnotationProcessor
org.springframework.context.event.internalEventListenerProcessor
org.springframework.context.event.internalEventListenerFactory
rmiClientTest
exporter
spring rmi返回结果:Order{item=‘davidwang‘, qty=456, orderDate=2020-07-17T14:20:59.274}小结
深入Spring RMI原理
服务端RmiServiceExporter
1.RmiInvocationWrapper继承自Remote,包装了接口服务
等同于接口实现了Remote接口。
2.Registry
使用LocateRegistry.getRegistry方法获取Registry
3.使用jdk的UnicastRemoteObject的exportObject()方法,共有六种使用方式:
其中第四种已经过期。
客户端RmiProxyFactoryBean
支持Naming方式和stub方式总结
一、RMI容易和RPC弄混。
二、RPC 远程过程调用
三、RMI与RPC的区别
上一篇:python3 守护进程
文章标题:深入spring Integration集成远程调用RMI原理
文章链接:http://soscw.com/index.php/essay/64133.html