今天面试被问及到一个只是简单听说过,但是没有去用过的东西,用了简短的一会时间去看了下Spring的rmi文档,大致实现方式有其下几种
1.org.springframework.remoting.rmi.RmiProxyFactoryBean
其使用的是rmi协议实现
实现过程,首先是服务端
定义一个导出类
public interface AccountService { String getUsername();}
public class AccountServiceImpl implements AccountService{ @Override public String getUsername() { return "RMI Test!"; }}
rmi.xml
启动服务
public class Main { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("rmi.xml"); AccountService service = context.getBean("accountService", AccountService.class); String userName = service.getUsername(); System.out.println(userName); }}
接下来客户端如下
public interface AccountService { String getUsername();}
rmi.xml
启动程序
public class Main { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("rmi.xml"); AccountService service = context.getBean("accountService", AccountService.class); String userName = service.getUsername(); System.out.println(userName); }}
这样就可以在服务器端得到了RMI Test!
当我们在启动服务端的时候会发现,其控制台一直在运行状态,当结束后,还会有rmi进程在运行。其接口协议为rmi://hostname:1199/xxxxxxx