- Spring和RMI集成
- Spring和RMI集成的示例
Spring借助org.springframework.remoting.rmi.RmiProxyFactoryBean和org.springframework.remoting.rmi.RmiServiceExporter类提供了一种运行RMI应用程序的简便方法。
RmiServiceExporter它为rmi对象提供导出服务。可以通过普通的RMI或RmiProxyFactoryBean访问此服务。
RmiProxyFactoryBean它是Rmi Proxies的工厂bean。它公开了可以用作Bean引用的代理服务。
Spring和RMI集成的示例
让我们看一下将spring应用程序与RMI集成的简单步骤:
- Calculation.java
- CalculationImpl.java
- applicationContext.xml
- client-beans.xml
- Host.java
- Client.java
- Spring Core jar文件
- Spring远程jar文件
- Spring AOP jar文件
1) Calculation.java
它是包含一个方法多维数据集的简单接口。
package com.srcmini;
public interface Calculation {
int cube(int number);
}
2) CalculationImpl.java
此类提供了Calculation接口的实现。
package com.srcmini;
public class CalculationImpl implements Calculation{ @Override
public int cube(int number) {
return number*number*number;
}}
3)applicationContext.xml
在此xml文件中, 我们为CalculationImpl类和RmiServiceExporter类定义了bean。我们需要为RmiServiceExporter类的以下属性提供值。
- 服务
- serviceInterface
- 服务名称
- replaceExistingBinding
- RegistryPort
<
?xml version="1.0" encoding="UTF-8"?>
<
beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<
bean id="calculationBean" class="com.srcmini.CalculationImpl">
<
/bean>
<
bean class="org.springframework.remoting.rmi.RmiServiceExporter">
<
property name="service" ref="calculationBean">
<
/property>
<
property name="serviceInterface" value="http://www.srcmini.com/com.srcmini.Calculation">
<
/property>
<
property name="serviceName" value="http://www.srcmini.com/CalculationService">
<
/property>
<
property name="replaceExistingBinding" value="http://www.srcmini.com/true">
<
/property>
<
property name="registryPort" value="http://www.srcmini.com/1099">
<
/property>
<
/bean>
<
/beans>
4)client-beans.xml
【Spring和RMI集成实例详解】在此xml文件中, 我们为RmiProxyFactoryBean定义bean。你需要定义此类的两个属性。
- serviceUrl
- serviceInterface
<
?xml version="1.0" encoding="UTF-8"?>
<
beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<
bean id="calculationBean" class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
<
property name="serviceUrl" value="rmi://localhost:1099/CalculationService">
<
/property>
<
property name="serviceInterface" value="http://www.srcmini.com/com.srcmini.Calculation">
<
/property>
<
/bean>
<
/beans>
5) Host.java
它只是在获取ApplicationContext的实例。但是你需要先运行此类以运行示例。
package com.srcmini;
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");
}
}
6) Client.java
此类获取Calculation的实例并调用该方法。
package com.srcmini;
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
下载此示例(使用Myeclipse IDE开发)
下载此示例(使用Eclipse IDE开发)
推荐阅读
- Spring和JMS集成详细解释
- 在Spring Framework中进行远程处理
- Spring和JAXB集成示例详解
- Spring MVC表单文本字段用法示例
- Spring MVC表单单选按钮用法示例
- Spring MVC表单标签库介绍
- Spring MVC教程入门示例介绍
- 使用 jenkins 自动化编译cordova for android 生成 APK
- Android6.0源码下载编译刷入真机