1.org.springframework.remoting.rmi.RmiProxyFactoryBean
其使用的是rmi协议实现
实现过程,首先是服务端
定义一个导出类
1
2
3
|
public interface AccountService {
String getUsername();
} |
1
2
3
4
5
6
|
public class AccountServiceImpl implements AccountService{
@Override
public String getUsername() {
return "RMI Test!" ;
}
} |
rmi.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
<? 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 = "accountService" class = "example.AccountServiceImpl" >
<!-- any additional properties, maybe a DAO? -->
</ bean >
< bean class = "org.springframework.remoting.rmi.RmiServiceExporter" >
<!-- 这里的服务名可以随意填写但是必须和rmi://hostname:1199/xxxxxxx的xxxxxxx相同 -->
< property name = "serviceName" value = "AccountService" />
<!-- 导出实体 -->
< property name = "service" ref = "accountService" />
<!-- 导出接口,这个为导出接口,注意,客户端包名可以和这里不同,但是为了统一建议做一个coreInterface
包,以便以后维护方便 -->
< property name = "serviceInterface" value = "example.AccountService" />
<!-- 端口号,默认为1099,这里注意占用问题 -->
< property name = "registryPort" value = "1199" />
</ bean >
</ beans >
|
启动服务
1
2
3
4
5
6
7
8
9
|
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);
}
} |
接下来客户端如下
1
2
3
|
public interface AccountService {
String getUsername();
} |
rmi.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<?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= "accountService" class = "org.springframework.remoting.rmi.RmiProxyFactoryBean" >
<!-- 接收的rmi协议 -->
<property name= "serviceUrl" value= "rmi://localhost:1199/AccountService" />
<!-- 接收的rmi协议的接口 -->
<property name= "serviceInterface" value= "example.AccountService" />
</bean>
</beans> |
启动程序
1
2
3
4
5
6
7
8
9
|
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
相关推荐
**Spring RMI 深度解析** Spring框架作为Java企业级应用开发的首选,提供了丰富的功能,包括对远程方法调用(Remote Method Invocation,RMI)的支持。RMI是Java平台上的一个核心特性,允许在分布式环境中进行对象...
在这个"SpringRMI小例子"中,我们将深入探讨如何利用Spring框架来增强RMI的功能,使其更加灵活和易于管理。 首先,我们需要理解Spring框架在RMI中的角色。Spring提供了对RMI的高级抽象,通过其`org.springframework...
Spring RMI(Remote Method Invocation)是Java平台上的远程方法调用技术,结合Spring框架,能够帮助开发者轻松地创建分布式应用程序。在这个"Spring RMI小例子"中,我们将深入理解Spring如何简化RMI的使用,以及...
Spring RMI整合了RMI机制,提供了一种更加灵活和易于管理的方式,让开发者可以在Spring容器中定义远程服务,并通过Spring的IoC(Inversion of Control)和AOP(Aspect Oriented Programming)特性来增强这些服务。...
Spring RMI服务是一种在Java平台上实现远程方法调用(Remote Method Invocation, RMI)的技术,它允许分布式系统中的不同组件通过网络进行通信。在Spring框架的支持下,我们可以更方便地将服务发布为RMI服务,使得...
在IT行业中,Spring框架是Java开发中的一个基石,它提供了丰富的功能来简化应用程序的构建,包括远程过程调用(Remote Method Invocation,RMI)服务。本文将深入探讨"spring rmi 改造"这一主题,主要关注如何在原有...
为了避免业务逻辑重新开发,顾使用spring rmi,把所有的bean作为rmi服务暴漏出来,在客户端只需要把项目依赖过来就ok,或者把以前的接口导入过来。 参考文档:...
Spring RMI(Remote Method Invocation)是Spring框架对Java RMI技术的一种封装,使得在Spring环境中使用RMI变得更加简便。RMI是一种Java平台上的远程对象调用机制,它允许一个Java对象在不同的Java虚拟机之间调用另...
Spring RMI(Remote Method Invocation)是Java平台上的远程方法调用技术,结合Spring框架的特性,使得在分布式系统中调用远程服务变得更加便捷。在这个简单的例子中,我们将深入理解Spring RMI的工作原理以及如何...
6. **源码分析**:在提供的压缩包文件`SpringRMI`中,可能包含了上述所有步骤的代码示例。通过阅读这些源码,你可以深入理解Spring RMI的工作原理,包括服务暴露、注册、代理创建等。 7. **工具使用**:在开发过程...
### Spring RMI 使用详解 #### 一、Spring RMI 概述 Spring RMI 是 Spring 框架中用于支持远程方法调用(Remote Method Invocation)的功能模块。通过 Spring RMI, 开发者能够更加简便地搭建和管理远程服务。传统上...
Spring RMI(Remote Method Invocation)是Java平台上的远程方法调用技术,允许程序在不同的Java虚拟机(JVM)之间进行通信,实现分布式系统。在本文中,我们将深入探讨Spring框架如何集成RMI,以及如何创建和使用...
1.2 Spring的RMI支持:Spring通过`org.springframework.remoting.rmi.RmiServiceExporter`和`RmiProxyFactoryBean`简化了RMI的使用。`RmiServiceExporter`用于发布服务,而`RmiProxyFactoryBean`则用于创建RMI服务的...
Spring Remote Method Invocation (RMI) 是Spring框架提供的一种远程服务调用机制,它允许你在分布式环境中调用对象的方法,就像是在本地执行一样。这个技术基于Java的RMI系统,但通过Spring的抽象层,简化了配置和...
在Java项目中,Spring RMI(Remote Method Invocation)是一种整合远程方法调用功能与Spring框架的方式,它使得在分布式环境中管理对象和服务变得更加便捷。本文将深入探讨Spring RMI涉及的包,以及如何在项目中使用...
Spring RMI(Remote Method Invocation)远程接口调用是Spring框架提供的一个特性,它允许你在分布式环境中调用对象的方法,使得应用程序能够跨越网络边界操作远程对象。这个技术在大型企业级应用中尤其有用,因为它...
Spring RMI(Remote Method Invocation)简单应用主要涉及的是在Java中使用Spring框架来实现远程方法调用的技术。RMI是Java提供的一种分布式计算能力,它允许一个Java对象调用网络另一端的Java对象的方法,实现了...
**Spring RMI 集成详解** 在Java开发中,远程方法调用(Remote Method Invocation,RMI)是一种用于在不同Java虚拟机之间进行对象交互的技术。Spring框架提供了对RMI的支持,使得在Spring应用中集成RMI变得更加简单...