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的整合,以及如何通过"SpringRMIClient"和"SpringRMIServer"这两个示例文件实现跨项目的远程方法调用。 一、Spring整合RMI基础 1.1 RMI原理:RMI的核心在于Java的`java.rmi`包,它定义了...
标题"spring-rmi"暗示我们将探讨Spring框架与RMI的整合。 Spring RMI的核心概念包括服务接口、远程实现和服务注册。首先,我们需要定义一个接口,该接口声明了将在远程服务器上执行的方法。这个接口通常会使用`java...
spring 与rmi 的整合 1.首先编写接口 interface : 这里的接口要继承Remote, 它是一个标识接口 2.编写实现类 3.编写main方法用于启动 service 4 配置spring文件 编写客户端测试类
当我们谈论“RMI与Spring整合实例”时,我们通常是指将RMI技术与Spring框架结合使用,以便构建可扩展的、分布式的Java应用程序。下面将详细解释这两个概念以及如何将它们整合在一起。 1. RMI基础: - RMI的核心...
具体到这个压缩包“springRMI”,我们可以推测它可能包含了以下几个部分: 1. **配置文件**:如`applicationContext.xml`,其中定义了Spring容器中的Bean,可能包括RMI服务的接口和实现。 2. **远程接口**:`.java`...
本文主要讨论的是如何将Hessian RPC与RMI技术整合到Structs、Spring、Hibernate和Ibatis这四个关键的Java开发框架中,以构建一个高效、灵活的分布式应用程序。 1. **Hessian配置说明**: Hessian的配置通常涉及...
Spring整合RMI(Remote Method Invocation)是将Spring框架与Java RMI技术相结合,实现远程服务调用的一种方式。RMI允许在分布式环境中调用对象的方法,就像调用本地对象一样,极大地增强了应用的可扩展性和灵活性。...
本文将深入探讨Spring整合RMI的相关知识点。 首先,理解RMI的基本概念是关键。RMI允许一个Java对象调用在另一个JVM中的对象的方法,仿佛它们在同一台机器上。这一过程涉及了三个主要步骤:导出远程接口、注册远程...
在本篇中,我们将深入探讨如何将Spring框架与Remote Method Invocation (RMI)技术整合,以便在分布式环境中实现远程服务调用。RMI是Java提供的一种机制,它允许对象在不同的JVM之间进行通信,而Spring框架则为构建可...
该Jar包提供了Spring与Hibernate之间的整合支持,简化了Hibernate的使用过程。 7. **spring-jdbc.jar** 这个Jar包提供了对JDBC的抽象层,可以使用简单的API来执行复杂的数据库操作。 8. **spring-orm.jar** ...
Java Spring与RMI(Remote Method Invocation)的整合是企业级应用中常见的远程服务交互方式。Spring框架提供了对RMI的支持,使得开发者能够方便地在分布式环境中进行服务的调用。这个压缩包文件“Spring+RMI”很...
**Spring + RMI 整合** 1. **Spring RMI 客户端**:Spring 提供了 `RmiProxyFactoryBean` 用于创建 RMI 客户端代理,这样可以在 Spring 容器中以声明式的方式配置远程服务。 2. **Spring RMI 服务器**:Spring 支持...
Spring RMI(Remote Method Invocation)是Java平台上的远程方法调用技术,允许程序在不同的Java虚拟机(JVM)之间进行通信,实现分布式系统。在本文中,我们将深入探讨Spring框架如何集成RMI,以及如何创建和使用...
Spring RMI整合了RMI机制,提供了一种更加灵活和易于管理的方式,让开发者可以在Spring容器中定义远程服务,并通过Spring的IoC(Inversion of Control)和AOP(Aspect Oriented Programming)特性来增强这些服务。...
在实际应用中,Spring MVC或者Spring Boot可以用来构建Web服务端,它们可以很好地与RMI整合,提供RESTful API或者其他Web服务接口,从而让客户端通过HTTP/HTTPS调用。 总结,"spring+rmi实现非本地部署"涉及了...
通过分析和运行这两个示例,开发者可以深入理解Spring框架与RMI的整合,以及如何在实际项目中应用这一技术。 总结来说,Spring中的RMI集成提供了一种简单且灵活的方式来实现分布式系统中的跨JVM通信。通过学习这个...
2. Spring 2.0 的新特性 2.1. 简介 2.2. 控制反转(IoC)容器 2.2.1. 更简单的XML配置 2.2.2. 新的bean作用域 2.2.3. 可扩展的XML编写 2.3. 面向切面编程(AOP) 2.3.1. 更加简单的AOP XML配置 2.3.2. 对@AspectJ 切面的...
这个库提供了Spring与Hibernate框架之间的整合支持,适用于Hibernate 2和Hibernate 3版本。如果你的应用需要与Hibernate集成,则需要此库。 ##### (7) spring-jdbc.jar 此库为Spring JDBC提供了封装支持,简化了...
在IT领域,Spring框架是广泛使用的Java应用开发框架,它提供了丰富的功能,包括依赖注入、AOP(面向切面编程)以及多种服务整合。而RMI(Remote Method Invocation,远程方法调用)是Java中用于分布式计算的技术,...