public class SimpleObject { private AccountService accountService; public void setAccountService(AccountService accountService) { this.accountService = accountService; }
1.使用RMI暴露服务
使用Spring的RMI支持,你可以通过RMI基础设施透明的暴露你的服务。设置好Spring的RMI支持后,你会看到一个和远程EJB接口类似的配置,只是没有对安全上下文传递和远程事务传递的标准支持。当使用RMI调用器时,Spring对这些额外的调用上下文提供了钩子,你可以在此插入安全框架或者定制的安全证书。
2. 使用 RmiServiceExporter 暴露服务
使用 RmiServiceExporter,我们可以把AccountService对象的接口暴露成RMI对象。可以使用 RmiProxyFactoryBean 或者在传统RMI服务中使用普通RMI来访问该接口。RmiServiceExporter 显式地支持使用RMI调用器暴露任何非RMI的服务。
当然,我们首先需要在Spring BeanFactory中设置我们的服务:
<bean id="accountService" class="example.AccountServiceImpl"> <!-- any additional properties, maybe a DAO? --> </bean>
然后,我们将使用 RmiServiceExporter 来暴露我们的服务:
<bean class="org.springframework.remoting.rmi.RmiServiceExporter"> <!-- does not necessarily have to be the same name as the bean to be exported --> <property name="serviceName" value="AccountService"/> <property name="service" ref="accountService"/> <property name="serviceInterface" value="example.AccountService"/> <!-- defaults to 1099 --> <property name="registryPort" value="1199"/> </bean>
正如你所见,我们覆盖了RMI注册的端口号。通常,你的应用服务也会维护RMI注册,最好不要和它冲突。更进一步来说,服务名是用来绑定下面的服务的。所以本例中,服务绑定在 rmi://HOST:1199/AccountService。在客户端我们将使用这个URL来链接到服务。
注意:我们省略了一个属性,就是 servicePort 属性,它的默认值为0。 这表示在服务通信时使用匿名端口。当然如果你愿意的话,也可以指定一个不同的端口。
3. 在客户端链接服务
我们的客户端是一个使用AccountService来管理account的简单对象:
public class SimpleObject { private AccountService accountService; public void setAccountService(AccountService accountService) { this.accountService = accountService; }
为了把服务连接到客户端上,我们将创建另一个单独的bean工厂,它包含这个简单对象和服务链接配置位:
<bean class="example.SimpleObject"> <property name="accountService" ref="accountService"/> </bean> <bean id="accountService" class="org.springframework.remoting.rmi.RmiProxyFactoryBean"> <property name="serviceUrl" value="rmi://HOST:1199/AccountService"/> <property name="serviceInterface" value="example.AccountService"/> </bean>
这就是我们在客户端为支持远程account服务所需要做的。Spring将透明的创建一个调用器并且通过RmiServiceExporter使得account服务支持远程服务。在客户端,我们用RmiProxyFactoryBean连接它
相关推荐
具体到这个压缩包“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的核心概念包括服务接口、远程实现和服务注册。首先,我们需要定义一个...