📜  Spring和RMI集成

📅  最后修改于: 2020-12-04 08:49:56             🧑  作者: Mango

Spring和RMI集成

Spring RMI使您可以通过RMI基础结构公开服务。

Spring在org.springframework.remoting.rmi的帮助下提供了一种运行RMI应用程序的简便方法。 RmiProxyFactoryBean和org.springframework.remoting.rmi。 RmiServiceExporter类。

RmiServiceExporter

它为rmi对象提供导出服务。可以通过普通的RMI或RmiProxyFactoryBean访问此服务。

RmiProxyFactoryBean

它是Rmi Proxies的工厂bean。它公开了可以用作Bean引用的代理服务。

Spring和RMI集成的示例

让我们看一下将spring应用程序与RMI集成的简单步骤:

  • Calculation.java
  • CalculationImpl.java
  • applicationContext.xml
  • client-beans.xml
  • Host.java
  • 客户端.java

所需的Jar文件

要运行此示例,您需要加载:

  • Spring Core jar文件
  • Spring远程jar文件
  • Spring AOP jar文件

下载Spring的所有jar文件,包括core,web,aop,mvc,j2ee,remoting,oxm,jdbc,orm等。

它是包含一个方法多维数据集的简单接口。

package com.javatpoint;

public interface Calculation {
int cube(int number);
}

此类提供了Calculation接口的实现。

package com.javatpoint;

public class CalculationImpl implements Calculation{

    @Override
    public int cube(int number) {
        return number*number*number;
    }

}

在这个xml文件中,我们为CalculationImpl类和RmiServiceExporter类定义了bean。我们需要为RmiServiceExporter类的以下属性提供值。

  • 服务
  • serviceInterface
  • 服务名称
  • replaceExistingBinding
  • RegistryPort





    
    
    
    
    



在此xml文件中,我们为RmiProxyFactoryBean定义bean。您需要定义此类的两个属性。

  • serviceUrl
  • serviceInterface


    






它只是在获取ApplicationContext的实例。但是您需要先运行此类以运行示例。

package com.javatpoint;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Host{
public static void main(String[] args){
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
System.out.println("Waiting for requests");
}
}

此类获取Calculation的实例并调用该方法。

package com.javatpoint;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Client {
public static void main(String[] args)     {
ApplicationContext context = new ClassPathXmlApplicationContext("client-beans.xml");
Calculation calculation = (Calculation)context.getBean("calculationBean");
System.out.println(calculation.cube(7));
}
}

如何运行这个例子

首先编译并运行Host.java

然后,编译并运行Client.java