English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Spring RMI le permite publicar servicios a través de la infraestructura RMI.
Spring utiliza org.springframework.remoting.rmi. RmiProxyFactoryBean y org.springframework.remoting.rmi. RmiServiceExporter Clase.
RmiServiceExporter
Proporciona servicios de exportación para objetos RMI. Puede acceder a este servicio a través de RMI común o RmiProxyFactoryBean.
RmiProxyFactoryBean
Es el fábrica de bean de proxy Rmi. Publica un servicio de proxy que se puede usar como referencia de bean.
Vamos a ver los pasos simples para integrar la aplicación Spring con RMI:
Calculation.java CalculationImpl.java applicationContext.xml client-beans.xml Host.java Client.java
Para ejecutar este ejemplo, necesita cargar:
jar de Spring Core jar de Spring Remoting jar de Spring AOP
Descargue todos los archivos jar de Spring, incluyendo core, web, aop, mvc, j2ee, remoting, oxm, jdbc, orm, etc.
1Calculation.java
Este es un interfaz simple que contiene un método de conjunto de datos multidimensionales.
paquete com.w3codebox; public interface Calculation { int cube(int número); }
2CalculationImpl.java
Esta clase proporciona la implementación del interfaz Calculation.
paquete com.w3codebox; public class CalculationImpl implements Calculation{ @Override public int cube(int número) { return número*número*number; } }
3applicationContext.xml
En este archivo xml, definimos la clase CalculationImpl y RmiServiceExporter La clase define el bean. Necesitamos proporcionar valores para las propiedades siguientes de la clase RmiServiceExporter.
servicio serviceInterface serviceName 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.w3codebox.CalculationImpl"></bean> <bean class="org.springframework.remoting.rmi.RmiServiceExporter"> <property name="service" ref="calculationBean"></property> <property name="serviceInterface" value="com.w3codebox.Calculation"></property> <property name="serviceName" value="CalculationService"></property> <property name="replaceExistingBinding" value="true"></property> <property name="registryPort" value="1099></property> </bean> </beans>
4、client-beans.xml
在此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="com.w3codebox.Calculation"></property> </bean> </beans>
5、Host.java
它只是获取ApplicationContext的实例。但是您需要先运行此类以运行示例。
paquete com.w3codebox; 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("Esperando solicitudes"); } }
6、Client.java
Esta clase obtiene la instancia de Calculation y llama a este método.
paquete com.w3codebox; 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)); } }