spring rmi整合:
spring可以将任意POJO对象设置为RMI对象,供外部程序访问。通过spring的AOP动态代理可以添加RMI的访问规则。spring的RMI导出器仅仅只是暴露了POJO对外部的访问,但其安全管理,权限控制等还需要自己处理,
但spring还是提供了访问点,可以通过访问点,应用自己的安全策略。 具体配置如下:
服务端:
接口类:
package com.rmi;
public interface UserService {
public abstract void insertUser(String username);
public abstract void delUser(String username);
}
具体实现类:
package com.rmi;
public class UserServiceImpl implements UserService {
/* (non-Javadoc)
* @see com.rmi.UserService#insertUser(java.lang.String)
*/
public void insertUser(String username) {
System.out.println("UserService.insertUser() inser user sucess..."
+ username);
}
/* (non-Javadoc)
* @see com.rmi.UserService#delUser(java.lang.String)
*/
public void delUser(String username) {
System.out.println("UserService.delUser() del username success......"
+ username);
}
}
applicatonContext-rmi.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" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
<bean id="userservice" class="com.rmi.UserServiceImpl" /> <!-- 具体需要导出的RMI对象,其对象是一个POJO对象 -->
<bean id="userExporter" class="org.springframework.remoting.rmi.RmiServiceExporter"> <!-- RmiServiceExporter 采用spring的AOP动态代理技术将对rmi远程对象的调用转化成对目标对象的调用 -->
<property name="serviceName" value="UserService"></property> <!-- 注册的服务名 -->
<property name="service" ref="userservice"/><!-- 目标实现对象 -->
<property name="serviceInterface" value="com.rmi.UserService"></property><!-- 目标对象的接口类 -->
<property name="registryPort" value="1599" /><!-- 注册的端口,可以通过该端口获取到目标对象 -->
<property name="servicePort" value="458" /><!-- 用于进行通信的端口 -->
</bean>
</beans>
通过以上配置,就可以通过 rmi://localhost:1599/UserService访问到该rmi服务。
客户端配置:
1.客户端可以通过普通RMI访问策略访问有spring管理的服务器端。
2.客户端也可以通过spring的RmiProxyFactoryBean访问。
下面介绍第二种:
applicatonContext-rmi.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" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
<bean id="RmiUserService" class="org.springframework.remoting.rmi.RmiProxyFactoryBea">
<property name="serviceUrl" value="rmi://localhost:1599/UserService" />
<proeprty name="serviceInterface" value="com.rmi.UseService" />
</bean>
</beans>
通过以上配置就可以直接从springIOC容器中拿到远程RMI对象,此RmiUserService对象就可以看出是服务器端的UserServiceImpl对象。
通信逻辑:
RmiServiceExport 通过Spring的AOP将POJO暴露成RMI对象。客户端通过RmiProxyFactoryBean访问Rmi对象。
分享到:
相关推荐
**Spring RMI 集成详解*...综上所述,Spring RMI集成使得在分布式环境中开发和管理服务变得更为便捷。通过正确配置服务器和客户端,可以实现高效的远程调用,同时利用Spring的管理能力,提高代码的可维护性和可测试性。
具体到这个压缩包“springRMI”,我们可以推测它可能包含了以下几个部分: 1. **配置文件**:如`applicationContext.xml`,其中定义了Spring容器中的Bean,可能包括RMI服务的接口和实现。 2. **远程接口**:`.java`...
spring 与rmi 的整合 1.首先编写接口 interface : 这里的接口要继承Remote, 它是一个标识接口 2.编写实现类 3.编写main方法用于启动 service 4 配置spring文件 编写客户端测试类
总的来说,"spring+rmi非本地实现"项目展示了如何利用Spring和RMI来构建分布式服务,提供了一种跨越网络调用的方法,增强了系统的可扩展性和解耦性。理解和掌握这部分知识对于开发分布式系统具有重要意义。
Spring框架对RMI的支持使得它更易于集成到现代企业级应用中,实现了服务间的松耦合和高效通信。本文将详细讲解Spring与RMI的整合,以及如何通过"SpringRMIClient"和"SpringRMIServer"这两个示例文件实现跨项目的远程...
Spring的面向切面编程(AOP)可以与RMI集成,提供日志记录、性能监控、安全控制等功能。通过定义切点和通知,可以在RMI调用前后执行特定逻辑。 ### 5. Spring RMI优化 - **RMI超时设置**:可以配置RMI连接和操作的...
Spring通过提供RMI集成,简化了RMI服务的创建和调用。以下是一些关键点: 1. **服务接口定义**:首先,你需要定义一个远程服务接口,这个接口将包含你希望在远程进程中执行的方法。 2. **服务实现**:接着,创建该...
本项目提供了一个入门级的源代码示例,帮助开发者理解如何在 Spring 环境下集成 RMI 技术。以下是关于这两个技术及其整合的详细知识点: **Spring 框架** 1. **Spring 概述**:Spring 是一个开源的 Java 应用开发...
- Spring提供了多种与RMI集成的方式,包括使用`org.springframework.remoting.rmi.RmiServiceExporter`和`RmiProxyFactoryBean`。 3. RMI与Spring整合: - `RmiServiceExporter`是Spring提供的一个工具类,用于...
在Spring框架中,RMI的集成变得更加简洁。Spring通过其`RmiProxyFactoryBean`和`RmiServiceExporter`组件,简化了远程服务的暴露和代理创建。下面我们将详细探讨这些知识点: 1. **定义远程接口**:在RMI中,你需要...
总结来说,Spring中的RMI集成提供了一种简单且灵活的方式来实现分布式系统中的跨JVM通信。通过学习这个压缩包中的示例,开发者不仅可以掌握RMI的基本原理,还能了解到Spring如何简化这个过程,从而在实际开发中更...
在本文中,我们将深入探讨Spring框架如何集成RMI,以及如何创建和使用RMI客户端。 首先,让我们了解RMI的基本概念。RMI是一种机制,它允许一个对象在一台计算机上执行的方法可以在另一台计算机上执行,就好像这些...
Spring框架提供了一种优雅的方式来集成RMI,简化了配置和管理过程。 首先,让我们了解RMI的基本概念。RMI系统包括三个主要组件:远程接口、远程实现和RMIServer。远程接口定义了可以在远程对象上调用的方法,这些...
总结,"spring+rmi实现非本地部署"涉及了Spring框架、RMI技术以及Web应用的集成,这些知识点在Java分布式系统开发中至关重要。通过理解并熟练掌握这些内容,开发者可以构建出高效、可扩展的分布式服务系统。
通过分析和实践这个Spring RMI实例,开发者可以学习到如何在Spring环境中设置和使用RMI,这对于理解和掌握分布式系统的设计原则,尤其是Java环境下的分布式服务实现非常有帮助。同时,这也是一个很好的起点,可以...
总的来说,这个项目提供了学习和理解Spring RMI集成的一个实例。通过分析服务端和客户端的源码,我们可以深入理解如何在Spring框架下实现和使用RMI远程调用,这对于任何希望在分布式系统中利用Spring的开发者来说都...
首先,让我们了解Spring中的RMI集成。Spring通过其`org.springframework.remoting.rmi`包提供了对RMI的支持。主要涉及以下组件: 1. **RmiServiceExporter**:这是一个Spring Bean,用于暴露一个实现了特定接口的...
Spring框架提供了对RMI的支持,使得在Spring应用中集成RMI变得更加方便。标题"spring-rmi"暗示我们将探讨Spring框架与RMI的整合。 Spring RMI的核心概念包括服务接口、远程实现和服务注册。首先,我们需要定义一个...
6. **连接现有/原有的系统**:RMI可以与现有的网络服务和系统集成。 7. **编写一次,到处运行**:Java的“Write Once, Run Anywhere”原则同样适用于RMI。 8. **分布式垃圾收集**:RMI支持在分布式环境中进行垃圾...
- **依赖注入**:Spring的依赖注入可以轻松地将RMI服务与其他组件集成。 - **事务管理**:Spring的事务管理支持可以跨RMI调用进行事务控制。 4. **RMI与Spring AOP的结合**: Spring的面向切面编程(AOP)可以...