English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Spring RMI يتيح لك إطلاق الخدمات عبر بنية تحتية RMI.
يستخدم Spring org.springframework.remoting.rmi. RmiProxyFactoryBean وorg.springframework.remoting.rmi. RmiServiceExporter فئة.
RmiServiceExporter
إنه يقدم خدمة تصدير لجسم RMI. يمكن الوصول إلى هذه الخدمة من خلال RMI العادي أو من خلال مصنع بروتوكول RMI.
RmiProxyFactoryBean
إنه مصنع بروتوكول RMI. إنه ي公开 خدمة بروتوكول يمكن استخدامها كمرجع للbean.
نحن سنجرب خطوات بسيطة لتكامل تطبيق Spring مع RMI:
Calculation.java CalculationImpl.java applicationContext.xml client-beans.xml Host.java Client.java
للبدء في هذا المثال، يجب عليك تحميل:
ملف jar الخاص بـ Spring Core ملف jar الخاص بـ Spring Remoting ملف jar الخاص بـ Spring AOP
انقر لتحميل جميع ملفات jar الخاصة بـ spring، بما في ذلك core، web، aop، mvc، j2ee، remoting، oxm، jdbc، orm وما إلى ذلك.
1. Calculation.java
هذه واجهة بسيطة تحتوي على طريقة لمجموعة بيانات متعددة.
package com.w3codebox; public interface Calculation { int cube(int number); }
2. CalculationImpl.java
يقدم هذا الصنف تنفيذًا للواجهة Calculation.
package com.w3codebox; public class CalculationImpl implements Calculation{ @Override public int cube(int number) { return number*number*number; } }
3. applicationContext.xml
في هذا ملف xml، نقدم CalculationImpl الصنف و RmiServiceExporter يحدد هذا الصنف bean. يجب تقديم قيم للصفات التالية لصنف RmiServiceExporter.
خدمة 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. ولكن يجب عليك تشغيل هذا الكائن أولاً لتشغيل المثال.
package 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("Waiting for requests"); } }
6،Client.java
يحصل هذا الكائن على مثال Calculation ويقوم بتشغيل هذا الطريقة.
package 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)); } }