`
wenzhihua1983
  • 浏览: 81475 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Spring rmi支持

    博客分类:
  • java
阅读更多

转载:http://blogger.org.cn/blog/more.asp?name=lhwork&id=18181

RMI是从JDK 1.1开始就出现的API功能,它让客户端在使用远程对象所提供的服务时,就如何使用本地对象一样,然而RMI在使用时必须一连串繁复的手续,像是服务介 面在定义时必须继承java.rmi.Remote接口、服务Server在实作时必须继承java.rmi.UnicastRemoteObject 别、必须使用rmic产生stubskeleton等等。

透过org.springframework.remoting.rmi.RmiServiceExporterSpring 简化了这些手续,来实际看看例子,了解SpringRMI上的使用与简化,首先定义服务对象的接口:

  • <o:p> </o:p>ISomeService.java
package onlyfun.caterpillar;

public interface ISomeService {
    public String doSomeService(String some);
    public void doOtherService(int other);
}

可以看到服务对象的接口不用继承java.rmi.Remote界面,而在实作时也不用继承java.rmi.UnicastRemoteObject,例如:<o:p></o:p>

  • SomeServiceImpl.java
package onlyfun.caterpillar;

public class SomeServiceImpl implements ISomeService {
    public String doSomeService(String some) {
        return some + " is processed";
    }
   
    public void doOtherService(int other) {
        // bla.. bla
    }
}

接下来在伺服端,您只要在Bean定义档中定义,让Spring管理、生成Bean,即可注册、启动RMI服务,例如:<o:p></o:p>
  • rmi-server.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN"
  "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
    <bean id="someService" class="onlyfun.caterpillar.SomeServiceImpl"/>

    <bean id="serviceExporter"
class="org.springframework.remoting.rmi.RmiServiceExporter">
        <property name="service">
            <ref bean="someService"/>
        </property>
        <property name="serviceName">
            <value>SomeService</value>
        </property>
        <property name="serviceInterface">
            <value>onlyfun.caterpillar.ISomeService</value>
        </property>       
    </bean>
   
</beans>

很简单,只要告诉org.springframework.remoting.rmi.RmiServiceExporter服务对象、名称与要代理的接口,之后Spring读取完定义文件并生成Bean实例后,RMI服务就会启动。

接下来看看客户端要如何实作,只要透过org.springframework.remoting.rmi.RmiProxyFactoryBean,并告知服务的URL、代理的接口即可,就好像在使用本地端管理的服务一样,例如Bean定义档可以如下撰写:

  • rmi-client.xml
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN"
"http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
<bean id="someServiceProxy"
class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
<property name="serviceUrl">
<value>rmi://localhost/SomeService</value>
</property>
<property name="serviceInterface">
<value>onlyfun.caterpillar.ISomeService</value>
</property>
</bean>
</beans>

 

以下是个简单的客户端呼叫远程服务的例子:<o:p></o:p>

....
        ApplicationContext context =
                new FileSystemXmlApplicationContext("rmi-client.xml");

        ISomeService service = (ISomeService) context.getBean("someServiceProxy");

        String result = service.doSomeService("Some request");
        System.out.println(result);
....
分享到:
评论

相关推荐

    spring RMI 实用分享

    1. 事务管理:Spring RMI支持声明式事务管理,只需在服务方法上添加`@Transactional`注解,即可实现事务的自动控制。 2. AOP支持:通过Spring AOP,可以在远程调用前后添加自定义逻辑,如日志记录、性能监控等。 3...

    Spring RMI小例子

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

    Spring RMI

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

    spring rmi 改造

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

    spring rmi应用

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

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

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

    Spring Rmi使用文档

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

    Spring-RMI.rar_spring rmi

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

    spring rmi 集成

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

    spring和RMI分布式整合源码

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

    java项目使用spring rmi所涉及到的包

    在Java项目中,Spring RMI(Remote Method Invocation)是一种整合远程方法调用功能与Spring框架的方式,它使得在分布式环境中管理对象和服务变得更加便捷。本文将深入探讨Spring RMI涉及的包,以及如何在项目中使用...

    spring rmi 简单应用

    同时,RMI也可以与Spring的其他远程服务支持,如Hessian、 Burlap等相结合,实现不同类型的远程调用。 总的来说,Spring RMI为开发者提供了一种简洁且强大的方式来实现分布式系统的组件交互,降低了远程服务开发的...

    springRMI接口实现

    6. **性能与安全性**:Spring RMI提供了线程池支持以优化并发性能。同时,你可以通过SSL或认证来增强安全性,限制对远程服务的访问。 7. **优点与适用场景**:Spring RMI简化了分布式系统的开发,降低了远程调用的...

    spring RMI 远程接口调用

    Spring RMI(Remote Method Invocation)远程接口调用是Spring框架提供的一个特性,它允许你在分布式环境中调用对象的方法,使得应用程序能够跨越网络边界操作远程对象。这个技术在大型企业级应用中尤其有用,因为它...

    spring+rmi非本地实现

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

    RMI SpringRMI API

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

    java spring rmi

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

Global site tag (gtag.js) - Google Analytics