Spring整合RMI的原理
客户端的核心是RmiProxyFactoryBean,包含serviceURL属性和serviceInterface属性。
通过JRMP访问服务。JRMP JRMP:java remote method protocol,Java特有的,基于流的协议。
服务端暴露远程服务
RmiServiceExporter把任何Spring管理的Bean输出成一个RMI服务。通过把Bean包装在一个适配器类中工作。适配器类被绑定到RMI注册表中,并且将请求代理给服务类。
服务端程序:
1 IHelloWorld.java POJO的接口
01.public interface IHelloWorld {
02. public String helloWorld();
03.
04. public String sayHelloToSomeBody(String someBodyName);
05.}
2 HelloWorld.java POJO的实现
01.public class HelloWorld implements IHelloWorld {
02.
03. @Override
04. public String helloWorld() {
05. return "Hello World!";
06. }
07.
08. @Override
09. public String sayHelloToSomeBody(String someBodyName) {
10. return "Hello World!" + someBodyName;
11. }
12.
13.}
3 spring配置文件rmi_server_context.xml
01.<?xml version="1.0" encoding="UTF-8"?>
02.<beans xmlns="http://www.springframework.org/schema/beans"
03. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
04. xmlns:tx="http://www.springframework.org/schema/tx"
05. xsi:schemaLocation="http://www.springframework.org/schema/beans
06.http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
07.http://www.springframework.org/schema/aop
08.http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
09.http://www.springframework.org/schema/tx
10.http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
11.
12. <bean id="helloWorld" class="springapp.rmi.rmi.HelloWorld" />
13.
14. <bean id="serviceExporter" class="org.springframework.remoting.rmi.RmiServiceExporter">
15. <property name="service" ref="helloWorld" />
16. <!-- 定义服务名 -->
17. <property name="serviceName" value="hello" />
18. <property name="serviceInterface" value="springapp.rmi.rmi.IHelloWorld" />
19. <property name="registryPort" value="8088" />
20. </bean>
21.
22.</beans>
4 服务端启动RMI的代码HelloHost.java
01.public class HelloHost {
02. public static void main(String[] args) {
03. ApplicationContext ctx = new ClassPathXmlApplicationContext(
04. "rmi_server_context.xml");
05. System.out.println("RMI服务伴随Spring的启动而启动了.....");
06. }
07.}
客户端
1 配置文件rmi_client_context.xml
01.<?xml version="1.0" encoding="UTF-8"?>
02.<beans xmlns="http://www.springframework.org/schema/beans"
03. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
04. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
05. <bean id="helloWorld" class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
06. <property name="serviceUrl" value="rmi://10.87.40.141:8088/hello" />
07. <property name="serviceInterface" value="springapp.rmi.rmi.IHelloWorld" />
08. </bean>
09.</beans>
2 客户端代码 HelloClient.java
01.public class HelloClient {
02.
03. public static void main(String[] args) throws RemoteException {
04. ApplicationContext ctx = new ClassPathXmlApplicationContext(
05. "rmi_client_context.xml");
06. IHelloWorld hs = (IHelloWorld) ctx.getBean("helloWorld");
07. System.out.println(hs.helloWorld());
08. System.out.println(hs.sayHelloToSomeBody("Lavasoft"));
09. }
10.
11.}
- 大小: 9.9 KB
- 大小: 10.5 KB
分享到:
相关推荐
以上就是Spring整合RMI的基本过程。通过这种方式,我们可以在分布式系统中轻松地实现服务的远程调用,同时利用Spring的依赖注入和AOP功能,提高代码的可维护性和可测试性。在实际应用中,还可能需要考虑安全性、性能...
spring 与rmi 的整合 1.首先编写接口 interface : 这里的接口要继承Remote, 它是一个标识接口 2.编写实现类 3.编写main方法用于启动 service 4 配置spring文件 编写客户端测试类
Spring框架提供了对RMI的支持,使得在Spring应用中集成RMI变得更加简单和灵活。本篇将深入探讨Spring如何与RMI结合,以及客户端和服务器端的实现细节。 ### 一、Spring RMI 服务器端集成 1. **定义远程接口**:...
Spring整合RMI(Remote Method Invocation)是将Spring框架与Java RMI技术相结合,实现远程服务调用的一种方式。RMI允许在分布式环境中调用对象的方法,就像调用本地对象一样,极大地增强了应用的可扩展性和灵活性。...
当我们谈论“RMI与Spring整合实例”时,我们通常是指将RMI技术与Spring框架结合使用,以便构建可扩展的、分布式的Java应用程序。下面将详细解释这两个概念以及如何将它们整合在一起。 1. RMI基础: - RMI的核心...
一、Spring整合RMI基础 1.1 RMI原理:RMI的核心在于Java的`java.rmi`包,它定义了接口和类来创建远程对象并进行调用。远程对象需继承`java.rmi.Remote`接口,并声明所有远程方法抛出`java.rmi.RemoteException`。 ...
这个“spring和RMI分布式整合源码”可能包含了一个实际项目中如何将这两种技术融合的实例。现在,我们将深入探讨Spring框架和RMI,以及它们在分布式环境中的整合应用。 首先,Spring是一个开源的Java应用程序框架,...
在Spring中集成RMI,可以轻松地创建和管理远程服务,提升系统的可扩展性和灵活性。 ### 1. Spring RMI基本概念 Spring RMI是Spring框架对Java RMI的封装,它简化了RMI服务的配置和管理过程。RMI的核心概念包括: ...
本文将深入探讨Spring整合RMI的相关知识点。 首先,理解RMI的基本概念是关键。RMI允许一个Java对象调用在另一个JVM中的对象的方法,仿佛它们在同一台机器上。这一过程涉及了三个主要步骤:导出远程接口、注册远程...
在这个“spring+rmi非本地实现”的项目中,我们有两个主要部分:客户端(client)和服务端(rmiserver)。让我们深入探讨一下这两个部分以及它们如何协同工作。 1. **服务端(rmiserver)**: - **创建RMI接口**:...
Spring框架提供了一种优雅的方式来集成RMI,简化了配置和管理过程。 首先,让我们了解RMI的基本概念。RMI系统包括三个主要组件:远程接口、远程实现和RMIServer。远程接口定义了可以在远程对象上调用的方法,这些...
本项目提供了一个入门级的源代码示例,帮助开发者理解如何在 Spring 环境下集成 RMI 技术。以下是关于这两个技术及其整合的详细知识点: **Spring 框架** 1. **Spring 概述**:Spring 是一个开源的 Java 应用开发...
Spring通过提供RMI集成,简化了RMI服务的创建和调用。以下是一些关键点: 1. **服务接口定义**:首先,你需要定义一个远程服务接口,这个接口将包含你希望在远程进程中执行的方法。 2. **服务实现**:接着,创建该...
**Spring整合RMI**主要是为了简化RMI应用的配置和管理。具体步骤包括: 1. **定义接口**:创建一个接口,定义你希望在远程环境中暴露的方法。 2. **实现接口**:实现接口中的所有方法,通常是在一个Spring Bean中...
在本文中,我们将深入探讨Spring框架如何集成RMI,以及如何创建和使用RMI客户端。 首先,让我们了解RMI的基本概念。RMI是一种机制,它允许一个对象在一台计算机上执行的方法可以在另一台计算机上执行,就好像这些...
Java Spring与RMI(Remote Method Invocation)的整合是企业级应用中常见的远程服务交互方式。Spring框架提供了对RMI的支持,使得开发者能够方便地在分布式环境中进行服务的调用。这个压缩包文件“Spring+RMI”很...
在实际应用中,Spring MVC或者Spring Boot可以用来构建Web服务端,它们可以很好地与RMI整合,提供RESTful API或者其他Web服务接口,从而让客户端通过HTTP/HTTPS调用。 总结,"spring+rmi实现非本地部署"涉及了...
Spring RMI整合了RMI机制,提供了一种更加灵活和易于管理的方式,让开发者可以在Spring容器中定义远程服务,并通过Spring的IoC(Inversion of Control)和AOP(Aspect Oriented Programming)特性来增强这些服务。...
Spring框架是Java开发中广泛应用的轻量级框架,它提供了丰富的功能来简化应用程序的构建,包括依赖注入、AOP(面向切面编程)以及多种集成技术。RMI(Remote Method Invocation,远程方法调用)是Java平台上的一个...