Spring远程访问

今天做了一个实验,用Spring实现对远程计算机上类和方法访问。一方面对Spring进行回顾,另一方面也是对JAVA远程访问的一个框架层次的了解!

Spring远程访问主要用接口技术来实现,所以要先定义一个服务接口。

package com.spring.rmi;

public interface RMIService {
	
	public void show();
	
	public String getString(String str);

}

生成一个实现接口的类。

package com.spring.rmi.impl;

import com.spring.rmi.RMIService;

public class RMIServiceImpl implements RMIService{

	public String getString(String str) {
		return (str + "访问成功!");
	}

	public void show() {

		System.out.println("这是服务器端的show()方法!");
	}

}

配置XML提供远程服务。

<?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-2.5.xsd">
          <bean id="service" class="com.spring.rmi.impl.RMIServiceImpl">
          </bean>
          <bean id="exporter" class="org.springframework.remoting.rmi.RmiServiceExporter">
          <property name="service" ref="service"></property>
          <property name="serviceName" value="service"></property>
          <property name="serviceInterface" value="com.spring.rmi.RMIService"></property>
          <property name="registryPort">
          <value>2222</value>
          </property>
          </bean>
</beans>

 接下来就是配置客户端来获取服务器端的服务类。

<?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-2.5.xsd">

<bean  id="serviceProxy" class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
    <property name="serviceUrl" value="rmi://10.20.10.201:2222/service"></property>
    <property name="serviceInterface" value="com.spring.rmi.RMIService">
    </property>
</bean>
</beans>

测试!!!

大家可以根据自己的需要修改IP和端口号,因为我是在同一台计算机上做实验所以测试方法就写到了一个方法中,大家可以根据需要自行修改测试方法!

package testRMI;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.spring.rmi.RMIService;
import com.spring.rmi.impl.RMIServiceImpl;

public class testRMI {

	
	
	public static  void main(String args[]) {

		ApplicationContext context = new ClassPathXmlApplicationContext("RMI-server.xml");
		ApplicationContext context2 = new ClassPathXmlApplicationContext("rmi-client.xml");
		RMIService server = (RMIService)context2.getBean("serviceProxy");
		server.show();
		System.out.println(server.getString("赵红伟"));
		
	}

}

大家如果需要源文件可以给我留言!

相关推荐