Spring调用Rmi

    在工作中遇到了多个客户端调用同一组Service的情况,所以就赶紧测试了一下Rmi,因为程序用的是Spring框架,所以此处记录的仅为Spring中调用Rmi的实例说明:

    1. 服务端 B/S端

        a. 增加接口:DpersonInfo

package com.hr;

import java.util.List;

public interface DpersonInfo {
	List<MpersonInfo> getPersonInfoList();
	List<MpersonInfo> getPersonInfoList(String ttype);
	String getTest(String name);
}

        b. 实现接口:DpersonInfoImpl

package com.hr;

import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;

@Repository
public class DpersonInfoImpl implements DpersonInfo {
	private RowMapper<MpersonInfo> rm=new BeanPropertyRowMapper<>(MpersonInfo.class);
	@Autowired
	private JdbcTemplate db;
	
	@Override
	public List<MpersonInfo> getPersonInfoList() {
		String sql="select * from person_info";
		return db.query(sql, rm);
		//return null;
	}

	@Override
	public List<MpersonInfo> getPersonInfoList(String ttype) {
		String sql="select * from person_info where ttype='"+ttype+"'";
		//return null;
		return db.query(sql, rm);
	}

	@Override
	public String getTest(String name) {
		// TODO Auto-generated method stub
		return "hello "+name+" rmi start...";
	}

}

        c. 配置发布接口Bean参数

<bean id="helloWorld" class="com.hr.DpersonInfoImpl" />  
<bean id="serviceExporter" class="org.springframework.remoting.rmi.RmiServiceExporter">  
	<property name="service" ref="helloWorld" />  
	<property name="serviceName" value="hello" />  
	<property name="serviceInterface" value="com.hr.DpersonInfo" />  
	<property name="registryPort" value="8088" />  
</bean>

        2. 客户端 C/S端

            a. 增加接口类:此类和服务端的接口类内容需要一致,即DpersonInfo,名称可以不一样,但里面的方法名及参数需要一致。

            b. 增加List中普通的Bean对象:此类和服务端中List集合中的对象类一致,即MpersonInfo类。

            c. spring环境配置

<?xml version= "1.0" encoding ="UTF-8"?>
<beans xmlns= "http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:aop="http://www.springframework.org/schema/aop">
		
       	<bean id="helloWorld" class="org.springframework.remoting.rmi.RmiProxyFactoryBean">  
		<property name="serviceUrl" value="rmi://192.168.96.11:8088/hello" />  
		<property name="serviceInterface" value="com.hr.DpersonInfo" />  
	</bean> 
       	
</beans>

            d. 调用Rmi

package com.hr;

import java.util.List;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Imain {

	public static void main(String[] args) {
		ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");  
		DpersonInfo hs = (DpersonInfo) ctx.getBean("helloWorld");  
		System.out.println(hs.getTest("luke"));  
		List<MpersonInfo> list=hs.getPersonInfoList();
		for(MpersonInfo m:list){
			System.out.println(m.toString());
		}
	}

}
以上亲测可正常使用....


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值