RMI是Java的标准远程调用方法,基于序列化机制实现。将一个组件发布为远程服务,允许客户端远程调用,组件需要满足以下条件:
1、服务接口要继承自java.rmi.Remote接口
2、服务实现类要继承自java.rmi.server.UnicastRemoteObject类
3、服务接口的返回方法全部都是基本类型,或实现了java.io.Serializable接口
对已经编写的组件,要想允许其他Java应用远程调用,就必须对其改造,而Spring允许不对其改造就可以将这些组件发布为远程服务。
//POJO
public class Book implements Serializable{
...
}
//服务接口:
public interface BookService{
public Book getBook(int id);
}
//服务实现类
public class BookServiceImpl implements BookService{
public Book getBook(int id){
...
}
}
在Spring中配置BookeService组件为远程服务:
<bean id="bookService" class="test.BookServiceImpl" />
<bean id="rmiService" class="org.springframework.remoting.rmi.RmiServiceExporter">
<property name="serviceName" value="BookService"/>
<property name="service" ref="bookService"/>
<property name="serviceInterface" value="test.BookService"/>
<property name="registryPort" value="1099"/>
</bean>
启动服务端:
public void main(String args[]){
new ClassPathXmlApplicationContext("xxx.xml");
}
客户端调用:
public void main(String args[]) throws Exception{
RmiProxyFactoryBean factory=new RmiProxyFactoryBean();
factory.setServiceInterface(UserService.class);
factory.setServiceUrl("rmi://ip:1099/UserService");
factory.afterPropertiesSet();
UserService service=(UserService)factory.getObject();
service.getBook(12);
}
如果客户端也利用了Spring Ioc,可以将RmiProxyFactoryBean在xml文件中装配出来,免去new xxx()操作。
分享到:
相关推荐
具体到这个压缩包“springRMI”,我们可以推测它可能包含了以下几个部分: 1. **配置文件**:如`applicationContext.xml`,其中定义了Spring容器中的Bean,可能包括RMI服务的接口和实现。 2. **远程接口**:`.java`...
1.2 Spring的RMI支持:Spring通过`org.springframework.remoting.rmi.RmiServiceExporter`和`RmiProxyFactoryBean`简化了RMI的使用。`RmiServiceExporter`用于发布服务,而`RmiProxyFactoryBean`则用于创建RMI服务的...
在IT行业中,Spring框架是Java开发中的一个核心组件,它为构建可维护、可扩展的Web应用程序提供了强大的支持。RMI(Remote Method Invocation)则是Java平台上的远程对象调用技术,允许程序在不同的Java虚拟机之间...
Spring框架作为Java企业级应用开发的首选,提供了丰富的功能,包括对远程方法调用(Remote Method Invocation,RMI)的支持。RMI是Java平台上的一个核心特性,允许在分布式环境中进行对象间的通信。在Spring中集成...
2. **Spring对RMI的支持**: - **`<bean>`标签中的`rmi:`命名空间**:Spring配置文件中可以使用`<rmi:registry>`来定义RMI注册表,`<rmi:export>`用于导出远程服务。 - **`RmiServiceExporter`**:Spring提供的...
Spring框架提供了对RMI的支持,使得在Spring应用中集成RMI变得更加简单和灵活。本篇将深入探讨Spring如何与RMI结合,以及客户端和服务器端的实现细节。 ### 一、Spring RMI 服务器端集成 1. **定义远程接口**:...
在IT行业中,Spring框架是Java开发中的一个核心组件,它为构建可扩展、模块化且易于维护的应用程序提供了强大的支持。而Spring-RMI(Remote Method Invocation)和HTTP调用是Spring框架中两种不同的远程通信机制,...
2. **Spring RMI 服务器**:Spring 支持通过 `RmiServiceExporter` 将 Spring 管理的bean导出为 RMI 服务。只需将这个类添加到 Spring 配置中,指定要导出的 bean 和接口即可。 3. **事务管理**:Spring 的 AOP ...
Spring框架提供了对RMI的支持,使得开发者能够方便地在分布式环境中进行服务的调用。这个压缩包文件“Spring+RMI”很可能包含了实现这样一个远程调用示例的所有必要组成部分,包括配置文件、接口定义、服务器端实现...
通过Spring的RMI支持,我们可以方便地定义服务接口和服务实现,然后通过配置文件或注解将它们暴露为RMI服务。这样做不仅提高了代码的可测试性,也使得服务的部署和管理变得更加灵活。 在原生的Spring RMI实现中,...
在实际应用中,Spring RMI提供了许多优势,如自动异常处理、透明的事务支持、线程管理等。同时,它还能与其他Spring特性如AOP结合,实现如日志、性能监控等功能。 然而,需要注意的是,虽然Spring RMI简化了远程...
在Spring框架中,远程方法调用(Remote Method Invocation, RMI)是一种使应用程序能够通过网络调用另一个JVM上的对象方法的技术。...理解并熟练运用Spring的RMI支持,对于构建大型、分布式的企业级应用至关重要。
在Spring框架的支持下,我们可以更方便地将服务发布为RMI服务,使得其他应用程序可以跨JVM(Java Virtual Machine)访问这些服务。下面将详细阐述Spring RMI服务的实现原理、配置过程以及如何自动化发布服务。 首先...
在Spring中,我们可以利用Spring的Remoting支持简化这些步骤。 1. **创建远程接口**: - 首先,你需要定义一个Java接口,这个接口将被远程调用。接口中的方法会成为远程方法。例如,你可以创建一个名为`...
这种方式使得服务端可以部署在任何支持Java和Spring的服务器上,客户端只需要知道服务端的URL和远程接口即可进行通信。 标签中的"web"表明可能涉及到Web应用的集成。在实际应用中,Spring MVC或者Spring Boot可以...
Spring RMI 是 Spring 框架中用于支持远程方法调用(Remote Method Invocation)的功能模块。通过 Spring RMI, 开发者能够更加简便地搭建和管理远程服务。传统上,使用 Java 的 RMI 需要进行复杂的配置和编码工作,...
在Spring 3.1版本中,通常会使用Spring的RMI支持,这可能涉及到的包包括Spring的核心库、AOP库、beans库以及RMI相关的库。确保这些库都在项目的`lib`目录下,以避免运行时的依赖问题。整合Spring和RMI可以让你更专注...
Spring通过其`org.springframework.remoting.rmi`包提供了对RMI的支持。主要涉及以下组件: 1. **RmiServiceExporter**:这是一个Spring Bean,用于暴露一个实现了特定接口的服务为RMI服务。它将Spring管理的bean...
Spring框架提供了对RMI的支持,简化了RMI的配置和使用,使得开发人员可以更加便捷地构建分布式服务。 首先,我们来看“SpringRMIClient”和“SpringRMIServer”这两个文件名,它们分别代表了RMI应用中的客户端和...
Spring框架提供了对RMI的支持,使得在Spring应用中集成RMI变得更加方便。标题"spring-rmi"暗示我们将探讨Spring框架与RMI的整合。 Spring RMI的核心概念包括服务接口、远程实现和服务注册。首先,我们需要定义一个...