rpc--实现--》spring封装rmi(java)
1、spring的rmi封装
a)对应的库:spring context环境自带rmi封装
b)使用方式:不需要写java代码=只需要配置即可
2、spring=封装rpc--rmi服务端的配置:
把【对应的接口】【对应的实现类的对象】暴露为远程服务
配置:spring-rmi-server.xml
<!-- RMI服务端 -->
<bean class="org.springframework.remoting.rmi.RmiServiceExporter">
<!-- 将远程接口实现类对象设置到RMI服务中 -->
<property name="service" ref="backUserServiceRedis" />
<!-- 设置RMI服务名,为RMI客户端依据此服务名获取远程接口实现类对象引用奠定基础 -->
<property name="serviceName" value="BackUserService" />
<!-- 将远程接口设置为RMI服务接口 -->
<property name="serviceInterface" value="com.cdsxt.sso.service.BackUserService" />
<!-- 为RMI服务端远程对象注册表设置端口号--> <property name="registryPort" value="9999" />
<!-- 其他属性可以查看org.springframework.remoting.rmi.RmiServiceExporter的类及其子类获取到--> </bean>
3、spring=封装rpc--rmi客户端的配置::为【对应的接口】的【对应的实现类的对象】生成【代理类 (动态生成)】,并放入bean工厂。
配置:spring-rmi-client.xml
<!- RMI客户端:自动创建frontUserService的代理对象,放入spring bean工厂 -->
<bean class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
<property name="serviceUrl" value="rmi://localhost:9999/FrontUserService"/>
<property name="serviceInterface" value="com.cdsxt.sso.service.FrontUserService"/> <!-- 当连接失败时是否刷新远程调用stub -->
<property name="refreshStubOnConnectFailure" value="true"/>
</bean>
demo需要分别配置服务端和客户端的xml:
spring-rmi-server.xml: