`
流浪鱼
  • 浏览: 1684771 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring对RMI的支持

    博客分类:
  • java
 
阅读更多
public class SimpleObject {

  private AccountService accountService;

  public void setAccountService(AccountService accountService) {

    this.accountService = accountService;

  }

 1.使用RMI暴露服务

 

使用SpringRMI支持,你可以通过RMI基础设施透明的暴露你的服务。设置好SpringRMI支持后,你会看到一个和远程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连接它

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    spring和RMI分布式整合源码

    具体到这个压缩包“springRMI”,我们可以推测它可能包含了以下几个部分: 1. **配置文件**:如`applicationContext.xml`,其中定义了Spring容器中的Bean,可能包括RMI服务的接口和实现。 2. **远程接口**:`.java`...

    Spring-RMI.rar_spring rmi

    1.2 Spring的RMI支持:Spring通过`org.springframework.remoting.rmi.RmiServiceExporter`和`RmiProxyFactoryBean`简化了RMI的使用。`RmiServiceExporter`用于发布服务,而`RmiProxyFactoryBean`则用于创建RMI服务的...

    spring+rmi非本地实现

    在IT行业中,Spring框架是Java开发中的一个核心组件,它为构建可维护、可扩展的Web应用程序提供了强大的支持。RMI(Remote Method Invocation)则是Java平台上的远程对象调用技术,允许程序在不同的Java虚拟机之间...

    Spring RMI

    Spring框架作为Java企业级应用开发的首选,提供了丰富的功能,包括对远程方法调用(Remote Method Invocation,RMI)的支持。RMI是Java平台上的一个核心特性,允许在分布式环境中进行对象间的通信。在Spring中集成...

    Spring RMI小例子

    2. **Spring对RMI的支持**: - **`&lt;bean&gt;`标签中的`rmi:`命名空间**:Spring配置文件中可以使用`&lt;rmi:registry&gt;`来定义RMI注册表,`&lt;rmi:export&gt;`用于导出远程服务。 - **`RmiServiceExporter`**:Spring提供的...

    spring rmi 集成

    Spring框架提供了对RMI的支持,使得在Spring应用中集成RMI变得更加简单和灵活。本篇将深入探讨Spring如何与RMI结合,以及客户端和服务器端的实现细节。 ### 一、Spring RMI 服务器端集成 1. **定义远程接口**:...

    Spring-RMI (RMI调用, HTTP调用)

    在IT行业中,Spring框架是Java开发中的一个核心组件,它为构建可扩展、模块化且易于维护的应用程序提供了强大的支持。而Spring-RMI(Remote Method Invocation)和HTTP调用是Spring框架中两种不同的远程通信机制,...

    java Spring+RMI入门程序源代码

    2. **Spring RMI 服务器**:Spring 支持通过 `RmiServiceExporter` 将 Spring 管理的bean导出为 RMI 服务。只需将这个类添加到 Spring 配置中,指定要导出的 bean 和接口即可。 3. **事务管理**:Spring 的 AOP ...

    java spring+rmi 的远程调用例子

    Spring框架提供了对RMI的支持,使得开发者能够方便地在分布式环境中进行服务的调用。这个压缩包文件“Spring+RMI”很可能包含了实现这样一个远程调用示例的所有必要组成部分,包括配置文件、接口定义、服务器端实现...

    spring rmi 改造

    通过Spring的RMI支持,我们可以方便地定义服务接口和服务实现,然后通过配置文件或注解将它们暴露为RMI服务。这样做不仅提高了代码的可测试性,也使得服务的部署和管理变得更加灵活。 在原生的Spring RMI实现中,...

    spring rmi应用

    在实际应用中,Spring RMI提供了许多优势,如自动异常处理、透明的事务支持、线程管理等。同时,它还能与其他Spring特性如AOP结合,实现如日志、性能监控等功能。 然而,需要注意的是,虽然Spring RMI简化了远程...

    spring中使用RMI

    在Spring框架中,远程方法调用(Remote Method Invocation, RMI)是一种使应用程序能够通过网络调用另一个JVM上的对象方法的技术。...理解并熟练运用Spring的RMI支持,对于构建大型、分布式的企业级应用至关重要。

    spring RMI 服务(自动把service发布为RMI服务)

    在Spring框架的支持下,我们可以更方便地将服务发布为RMI服务,使得其他应用程序可以跨JVM(Java Virtual Machine)访问这些服务。下面将详细阐述Spring RMI服务的实现原理、配置过程以及如何自动化发布服务。 首先...

    Spring(RMI)实例

    在Spring中,我们可以利用Spring的Remoting支持简化这些步骤。 1. **创建远程接口**: - 首先,你需要定义一个Java接口,这个接口将被远程调用。接口中的方法会成为远程方法。例如,你可以创建一个名为`...

    spring+rmi实现非本地部署

    这种方式使得服务端可以部署在任何支持Java和Spring的服务器上,客户端只需要知道服务端的URL和远程接口即可进行通信。 标签中的"web"表明可能涉及到Web应用的集成。在实际应用中,Spring MVC或者Spring Boot可以...

    Spring Rmi使用文档

    Spring RMI 是 Spring 框架中用于支持远程方法调用(Remote Method Invocation)的功能模块。通过 Spring RMI, 开发者能够更加简便地搭建和管理远程服务。传统上,使用 Java 的 RMI 需要进行复杂的配置和编码工作,...

    RMI SpringRMI API

    在Spring 3.1版本中,通常会使用Spring的RMI支持,这可能涉及到的包包括Spring的核心库、AOP库、beans库以及RMI相关的库。确保这些库都在项目的`lib`目录下,以避免运行时的依赖问题。整合Spring和RMI可以让你更专注...

    spring整合RMI小例子

    Spring通过其`org.springframework.remoting.rmi`包提供了对RMI的支持。主要涉及以下组件: 1. **RmiServiceExporter**:这是一个Spring Bean,用于暴露一个实现了特定接口的服务为RMI服务。它将Spring管理的bean...

    java spring rmi

    Spring框架提供了对RMI的支持,简化了RMI的配置和使用,使得开发人员可以更加便捷地构建分布式服务。 首先,我们来看“SpringRMIClient”和“SpringRMIServer”这两个文件名,它们分别代表了RMI应用中的客户端和...

    spring-rmi

    Spring框架提供了对RMI的支持,使得在Spring应用中集成RMI变得更加方便。标题"spring-rmi"暗示我们将探讨Spring框架与RMI的整合。 Spring RMI的核心概念包括服务接口、远程实现和服务注册。首先,我们需要定义一个...

Global site tag (gtag.js) - Google Analytics