- 浏览: 1899731 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
July01:
最近了解到一款StratoIO打印控件,功能如下:1、Html ...
jquery打印指定的div -
GentlemanQc:
...
quartz系列(二)spring3.2.5与quartz2.1.7集群版集成简要说明 -
静夜独窗:
你好,能说一下server.xml增加的配置是怎么影响性能的吗 ...
tomcat7.0性能优化-挑战极限精简版 -
beyondfengyu:
beyondfengyu 写道如果每个客户进程的时间不同步,时 ...
java并发(二十二)分布式锁 -
beyondfengyu:
如果每个客户进程的时间不同步,时间超前的进程是不是更容易得到锁 ...
java并发(二十二)分布式锁
一 前言
工作环境中,大部分功能,都是基于服务(SOA模式)的,因此用到了rmi.使用他的目的就是让分布式的开发变的简单,同时提高了项目的扩展性,可维护性,可读性.
rmi有很多种,例如:
1)远程方法调用(RMI)
2)Spring自己的HTTP invoker
3)EJB
4)Web Services
......
本文选择了spring的rmi接口进行分布式开发应用.具体用哪种rmi,我们还需要深入的挖掘.本文不作讨论.
至于具体哪里简单呢?需要朋友们深入了解java的远程方法调用(RMI).服务端的接口要继承java.rmi.Remote接口.启动类需要继承java.rmi.server.UnicastRemoteObject类.而且诸如服务器地址等配置信息,也不应该放在代码中,因此spring的rmi模式就应运而生了.
二 环境(javaSE项目)
jdk1.6.0.23
eclipse3.6.1_javaee
三 包
1)日志管理
commons-logging-1.1.1.jar
log4j-1.2.16.jar
2)spring核心包
org.springframework.asm-3.0.5.RELEASE.jar
org.springframework.beans-3.0.5.RELEASE.jar
org.springframework.context-3.0.5.RELEASE.jar
org.springframework.core-3.0.5.RELEASE.jar
org.springframework.expression-3.0.5.RELEASE.jar
3)aop支持
aopalliance.jar
org.springframework.aop-3.0.5.RELEASE.jar
四 spring基础配置
1)log4j的配置(src/log4j.properties),推荐配置;
2)commons-logging的配置(src/commons-logging.properties):这里是选配的,不配也不会报错,只是为了方便以后日志系统的切换;
3)spring的配置(src/applicationContext.xml),主要是头文件,spring3对头文件的要求很严格;
五 服务端配置与开发
1)开发服务的接口
2)开发服务的实现类
3)配置spring,配置实现类
4)配置spring,注册rmi服务,其中需要说明
a.远程调用服务名
b.提供服务的实现类
c.提供服务的接口
d.提供服务的端口
六 客户端配置与开发
1)将服务端的接口进行打包(注:不需要实现类,只是客户端访问服务端的一个存根)
2)配置spring
a.指定访问服务的地址
b.指定服务的接口
七 总结
1)接口与类就是java最简单的结构.与RMI无关;
2)客户端必须要有实现类的接口(存根),这样才能访问后实现类的转型,引用与方法调用;
3)本文将服务端和客户端写到了一个工程里,朋友们可以自己将起分离开来使用,但需要注意修改IP地址和开放防火墙相应端口;
4)服务端和客户端都需要使用spring才可以进行rmi的相关开发;
5)笔者会陆续补充其他几种rmi的集成使用方式;
作者简介
昵称:澳洲鸟
姓名:朴海林
QQ:85977328
MSN:6301655@163.com
转载请注明出处
因为我感觉spring确实是一个很好的框架啊,易学易用,里面很多思想都是值得学习的!呵呵
我会找时间进一步总结,把文章完善,感谢分享你的知识
同感,楼主,试一下Httpinvoker或者Hessian,嘿嘿,期待你能把这两个也分享出来。
我会找时间进一步总结,把文章完善,感谢分享你的知识
那你客户端的 “接口名Imp_Sub.class”类是如何得到的?是不是你的服务端和客户端都运行在同一个程序里面了?
RMI肯定需要生成存根的,
使用rmic 命令生成存根,使用rmiregistry命令进行注册。
如果你没有用到,可能是Spring自动给你完成了,也许这就是Spring 的用处吧。
spring对rmi进行了相应的包装,客户端的存根就是服务端的接口,开发很简单,只需要配置就可以.详细请看代码
客户端的存根就是服务端的接口
RMI本来就是这样的啊,这个不是Spring的功劳,如果存根不是服务端的接口,那客户端如何调用存根?
spring对rmi进行了相应的包装,客户端的存根就是服务端的接口,开发很简单,只需要配置就可以.详细请看代码
工作环境中,大部分功能,都是基于服务(SOA模式)的,因此用到了rmi.使用他的目的就是让分布式的开发变的简单,同时提高了项目的扩展性,可维护性,可读性.
rmi有很多种,例如:
1)远程方法调用(RMI)
2)Spring自己的HTTP invoker
3)EJB
4)Web Services
......
本文选择了spring的rmi接口进行分布式开发应用.具体用哪种rmi,我们还需要深入的挖掘.本文不作讨论.
至于具体哪里简单呢?需要朋友们深入了解java的远程方法调用(RMI).服务端的接口要继承java.rmi.Remote接口.启动类需要继承java.rmi.server.UnicastRemoteObject类.而且诸如服务器地址等配置信息,也不应该放在代码中,因此spring的rmi模式就应运而生了.
二 环境(javaSE项目)
jdk1.6.0.23
eclipse3.6.1_javaee
三 包
1)日志管理
commons-logging-1.1.1.jar
log4j-1.2.16.jar
2)spring核心包
org.springframework.asm-3.0.5.RELEASE.jar
org.springframework.beans-3.0.5.RELEASE.jar
org.springframework.context-3.0.5.RELEASE.jar
org.springframework.core-3.0.5.RELEASE.jar
org.springframework.expression-3.0.5.RELEASE.jar
3)aop支持
aopalliance.jar
org.springframework.aop-3.0.5.RELEASE.jar
四 spring基础配置
1)log4j的配置(src/log4j.properties),推荐配置;
2)commons-logging的配置(src/commons-logging.properties):这里是选配的,不配也不会报错,只是为了方便以后日志系统的切换;
3)spring的配置(src/applicationContext.xml),主要是头文件,spring3对头文件的要求很严格;
五 服务端配置与开发
1)开发服务的接口
2)开发服务的实现类
3)配置spring,配置实现类
4)配置spring,注册rmi服务,其中需要说明
a.远程调用服务名
b.提供服务的实现类
c.提供服务的接口
d.提供服务的端口
六 客户端配置与开发
1)将服务端的接口进行打包(注:不需要实现类,只是客户端访问服务端的一个存根)
2)配置spring
a.指定访问服务的地址
b.指定服务的接口
七 总结
1)接口与类就是java最简单的结构.与RMI无关;
2)客户端必须要有实现类的接口(存根),这样才能访问后实现类的转型,引用与方法调用;
3)本文将服务端和客户端写到了一个工程里,朋友们可以自己将起分离开来使用,但需要注意修改IP地址和开放防火墙相应端口;
4)服务端和客户端都需要使用spring才可以进行rmi的相关开发;
5)笔者会陆续补充其他几种rmi的集成使用方式;
作者简介
昵称:澳洲鸟
姓名:朴海林
QQ:85977328
MSN:6301655@163.com
转载请注明出处
- spring3.0.5_rmi.zip (2.3 MB)
- 下载次数: 1911
评论
20 楼
proTecJavaChen
2011-02-18
george 写道
现在程序员仿佛都对Spring有“一往情深”的情节,做什么应用,首先想到用Spring来捆绑,像JMS,定时任务、Web Service...等等,这些东西和Spring本质上没有什么关系,为什么一定要用Spring来作为胶水来粘结呢?
因为我感觉spring确实是一个很好的框架啊,易学易用,里面很多思想都是值得学习的!呵呵
19 楼
kingkan
2011-02-17
85977328 写道
jay_kid 写道
关于spring remoting,<spring recipes>这本书里面讲得很详细, spring可以通过rmi,也可以通过http web service来提供远程服务。rmi有时不能通过firewall,通过http就没有这样的问题。
我会找时间进一步总结,把文章完善,感谢分享你的知识
同感,楼主,试一下Httpinvoker或者Hessian,嘿嘿,期待你能把这两个也分享出来。
18 楼
85977328
2011-02-17
jay_kid 写道
关于spring remoting,<spring recipes>这本书里面讲得很详细, spring可以通过rmi,也可以通过http web service来提供远程服务。rmi有时不能通过firewall,通过http就没有这样的问题。
我会找时间进一步总结,把文章完善,感谢分享你的知识
17 楼
jay_kid
2011-02-17
楼主总结得不错,仰慕一下
16 楼
jay_kid
2011-02-17
关于spring remoting,<spring recipes>这本书里面讲得很详细, spring可以通过rmi,也可以通过http web service来提供远程服务。rmi有时不能通过firewall,通过http就没有这样的问题。
15 楼
85977328
2011-02-16
不是,maven里直接获取
14 楼
george
2011-02-16
85977328 写道
我原生的java远程方法调用,也没用到rmic,只是把服务端的接口打包到客户端并引用就可以
那你客户端的 “接口名Imp_Sub.class”类是如何得到的?是不是你的服务端和客户端都运行在同一个程序里面了?
13 楼
85977328
2011-02-16
我原生的java远程方法调用,也没用到rmic,只是把服务端的接口打包到客户端并引用就可以
12 楼
george
2011-02-16
85977328 写道
你说的生成存根,我理解应该是web service的开发思路吧。rmi好象不用的。只是把接口引用近来即可。
RMI肯定需要生成存根的,
使用rmic 命令生成存根,使用rmiregistry命令进行注册。
如果你没有用到,可能是Spring自动给你完成了,也许这就是Spring 的用处吧。
11 楼
85977328
2011-02-16
客户端调用代码非常简单,可以看我的demo
10 楼
85977328
2011-02-16
你说的生成存根,我理解应该是web service的开发思路吧。rmi好象不用的。只是把接口引用近来即可。
9 楼
85977328
2011-02-16
spring官方,提供了spring tools的集成eclipse,但我是没怎么用过了。
刚我也把文章的前言更新了一下。希望大家能更好的理解spring的rmi
刚我也把文章的前言更新了一下。希望大家能更好的理解spring的rmi
8 楼
85977328
2011-02-16
存根就是接口,我们的项目是基于maven管理的,所以不需要做接口相关的事情,引用近来即可。
7 楼
85977328
2011-02-16
启动类还要实现UnicastRemoteObject接口,结构很麻烦的
用spring,只需要配置
用spring,只需要配置
6 楼
george
2011-02-16
如果Spring能够提供一个GUI界面,来配置生成一些客户端存根和策略文件,并生成客户端demo代码段,也许还有用,如生成下面的策略文件,就降低了手动写的错误概率:
grant
{
permission java.net.SocketPermission "129.69.25.15:1024-65225","connect";
permission java.net.SocketPermission "129.69.25.16:1009","connect";
};
如果还是传统的方式,一步一步地自己来生成存根、调用生成的类....
这和Spring有什么关系,不就是平常开发RMI应有的步骤么?
grant
{
permission java.net.SocketPermission "129.69.25.15:1024-65225","connect";
permission java.net.SocketPermission "129.69.25.16:1009","connect";
};
如果还是传统的方式,一步一步地自己来生成存根、调用生成的类....
这和Spring有什么关系,不就是平常开发RMI应有的步骤么?
5 楼
85977328
2011-02-16
java原生的RMI,要实现Remote接口
spring这个什么都不需要,配置就可以
spring这个什么都不需要,配置就可以
4 楼
george
2011-02-16
85977328 写道
george 写道
RMI和Spring有关系么?Spring能为RMI开发带来哪些方便?
能够方便地生成存根,还是只填写一个RMI地址和端口,Spring自动给你生成存根和参考客户端实现类?
能够方便地生成存根,还是只填写一个RMI地址和端口,Spring自动给你生成存根和参考客户端实现类?
spring对rmi进行了相应的包装,客户端的存根就是服务端的接口,开发很简单,只需要配置就可以.详细请看代码
客户端的存根就是服务端的接口
RMI本来就是这样的啊,这个不是Spring的功劳,如果存根不是服务端的接口,那客户端如何调用存根?
3 楼
george
2011-02-16
现在程序员仿佛都对Spring有“一往情深”的情节,做什么应用,首先想到用Spring来捆绑,像JMS,定时任务、Web Service...等等,这些东西和Spring本质上没有什么关系,为什么一定要用Spring来作为胶水来粘结呢?
2 楼
85977328
2011-02-16
george 写道
RMI和Spring有关系么?Spring能为RMI开发带来哪些方便?
能够方便地生成存根,还是只填写一个RMI地址和端口,Spring自动给你生成存根和参考客户端实现类?
能够方便地生成存根,还是只填写一个RMI地址和端口,Spring自动给你生成存根和参考客户端实现类?
spring对rmi进行了相应的包装,客户端的存根就是服务端的接口,开发很简单,只需要配置就可以.详细请看代码
1 楼
george
2011-02-16
RMI和Spring有关系么?Spring能为RMI开发带来哪些方便?
能够方便地生成存根,还是只填写一个RMI地址和端口,Spring自动给你生成存根和参考客户端实现类?
能够方便地生成存根,还是只填写一个RMI地址和端口,Spring自动给你生成存根和参考客户端实现类?
发表评论
-
spring bean的四种常用作用域
2014-03-26 17:28 2560Spring的 bean有5种作用域分别是:singleton ... -
spring的cache接口
2014-01-08 18:05 0http://jinnianshilongnian.iteye ... -
quartz系列(三)terracotta2.3.5详细安装教程
2013-12-23 10:00 5838【概述】 官方网站 http://terracotta.org ... -
quartz系列(二)spring3.2.5与quartz2.1.7集群版集成简要说明
2013-12-23 09:54 6328一 概述 集成细节 ... -
spring3.2.2与xmemcached-1.3.7的优雅集成
2013-04-27 21:41 3404之前一直在网上找spring集成memcached的代码,但是 ... -
关于spring的bean配置继承
2013-03-27 12:55 3248bean配置继承? 顾名思 ... -
Spring MVC和Struts2的区别
2012-09-05 21:44 263841. 机制:spring mvc的入口 ... -
spring mvc-3.1.1与logback-1.0.3,slf4j-1.6.4集成
2012-05-17 20:47 12894之前用过spring配置log4j的。但是由于log4 ... -
spring mvc参数自定义注解开发
2012-04-19 10:15 11340前言 在使用过程中,发现spring mvc的rest ... -
spring mvc跳转
2011-12-21 09:18 5467在spring mvc的controller中,从一个cont ... -
spring3.0.5的TaskExecutor(线程池)集成使用
2011-02-22 19:54 3779一 前言 最近的项目,要用到线程池,之前的项目都是直接 ... -
quartz系列(一)spring3.2.5与quartz1.8.6单机版集成详细说明
2011-02-14 22:56 8971一 前言 公司业务需要,开发超时提醒的功能.因此笔者将 ... -
spring3.0.5的mvc使用(exception,json,annotation,xml,upload/download)
2011-01-31 10:36 5979由于公司的项目要使用spring的mvc,所以特意写了 ... -
spring3.0.5与zk5.0.5的集成详细说明
2011-01-21 18:15 1781一 前言 spring3.0.5和zk5.0.5的集成 ... -
spring 3.0各包说明
2011-01-20 21:51 1991org.springframework.aop- 3.0.0. ... -
spring3.0.5与JPA2.0(hibernate3.6)的集成详细说明
2011-01-17 15:37 7879一 前言 最近在做个项目,JPA使用了hibe ... -
spring3.0.5的事务传播
2011-01-14 11:13 1873事务传播行为类型 REQUIRED 如果当前没有事务,就新 ... -
spring3.0.5与hibernate3.6的集成初步
2011-01-14 11:11 3151spring3.0.5对jpa2.0开 ... -
spring3.0.5的aop使用
2011-01-14 11:03 3917spring3.0.5开始支持jpa2.0了,但是最近 ... -
spring使用jndi数据源
2010-10-26 08:56 3267其实spring使用jnid数据源很简单,本人只是在这记录一下 ...
相关推荐
"spring 3.0.5 集成cxf"这一主题聚焦于如何将Spring 3.0.5版本与Apache CXF整合,以实现高效、灵活的服务治理。 Spring 3.0.5是Spring框架的一个稳定版本,它引入了许多增强功能和改进,包括更好的类型安全依赖注入...
包含spring 3.0.5的所有jar文件: org.springframework.aop-3.0.5.RELEASE.jar org.springframework.asm-3.0.5.RELEASE.jar org.springframework.aspects-3.0.5.RELEASE.jar org.springframework.beans-3.0.5.RELEASE...
标题中的"Mybatis3.0.5 and Spring3.0.5jar"暗示了这是一个关于集成Mybatis和Spring框架的讨论,特别关注的是Mybatis的3.0.5版本和Spring的3.0.5版本。这两个框架在Java开发中被广泛用于持久层操作和依赖注入。接...
Spring3.0.5帮助文档 Spring3.0.5帮助文档 Spring3.0.5帮助文档
这个“spring3.0.5架包”包含了Spring框架的多个组件和库,使得开发者在项目中可以方便地引入和使用。 **核心模块:** Spring的核心模块包括IoC(Inversion of Control,控制反转)容器和AOP(Aspect Oriented ...
提供了对流行ORM(对象关系映射)框架的集成,如Hibernate和JPA,使得在Spring应用中使用ORM变得更加简单。 8. **org.springframework.aop-3.0.5.RELEASE.jar**: 实现了面向切面编程(AOP),允许定义横切关注点...
尽管压缩包中未直接包含Spring 3.0.5的完整文档,但通常Spring会提供详细的参考文档、用户指南和API文档,帮助开发者了解和使用其各个功能。 总结来说,"spring3.0.5-dist.rar"压缩包提供了Spring框架3.0.5版本的...
Spring3.0.5及其依赖包,包括: spring-framework-3.0.5.RELEASE.zip spring-framework-3.0.5.RELEASE-dependencies.rar
Spring框架是Java开发中最常用的轻量级框架之一,它的3.0.5版本是一个重要的里程碑,在这个版本中,Spring引入了许多新特性和改进。这里,我们主要探讨Spring 3.0.5的核心概念、设计原则以及它在lib包中的依赖。 **...
总结,本实例详细介绍了如何使用 Spring MVC 3.0.5、Spring 3.0.5 和 MyBatis 3.0.4 进行全注解开发,涵盖了开发环境配置、Maven 的使用、SSM 整合以及如何在 Eclipse 和 MyEclipse 中集成 Maven。这个教程对于希望...
Spring 3.0.5是Java开发中广泛使用的框架,主要专注于简化企业级应用程序的构建。这个版本的jar包包含了Spring框架的核心组件,为开发者提供了强大的依赖注入(Dependency Injection,DI),面向切面编程(Aspect-...
spring3.0.5帮助文档spring3.0.5帮助文档spring3.0.5帮助文档spring3.0.5帮助文档spring3.0.5帮助文档spring3.0.5帮助文档spring3.0.5帮助文档spring3.0.5帮助文档
Spring 3.0.5是Spring框架的一个重要版本,它在Spring框架的发展历程中占据了显著的位置。这个版本引入了许多新特性...在实际项目中,通常会根据具体需求,将Spring 3.0.5与这些第三方库结合使用,构建完整的应用程序。
Spring 3.0.5是该框架的一个稳定版本,包含了多个jar包,每个jar包都有其特定的功能和用途。以下是这些jar包的主要作用和相关知识点: 1. **spring-core.jar**:这是Spring框架的核心库,包含了IoC(Inversion of ...
本文将深入探讨Spring 3.0.5版本中的AOP(面向切面编程)特性,以及如何使用它来提升代码的可维护性和模块化。AOP是一种编程范式,它允许程序员定义“切面”,这些切面可以包含业务逻辑的各个部分,如日志、事务管理...
6. **数据访问支持**:Spring 3.0.5提供了对JDBC、ORM(如Hibernate、MyBatis)、JPA和JDO的集成,使得数据库操作变得更加简单和灵活。 7. **MVC框架**:Spring Web MVC是Spring框架的一部分,用于构建Web应用程序...
标题中的"spring3.0.5_hibernate3.5.3_struts2.2.1整合jar包"指的是一个集合了Spring 3.0.5、Hibernate 3.5.3和Struts 2.2.1框架的整合包。这个资源是经过作者亲自测试的,被认为是最优的选择。它不仅提供了这三个...
7. **AspectJ集成加强**:Spring 3.0进一步强化了与AspectJ的集成,使得AOP的使用更加简便,可以通过注解轻松定义切面。 8. **国际化支持**:Spring 3.0的MessageSource接口提供了更好的国际化支持,可以更方便地...
JPA是Java EE平台中用于持久化数据的标准API,Spring 3.0.5通过优秀的JPA支持,让开发者可以轻松地在Spring应用中使用各种JPA实现,如Hibernate、EclipseLink等。它提供了事务管理、DAO模板、查询构造等功能,使得...
本方案提供了一种集成化的开发环境,即"MyEclipse7.5+flex4+spring3.0.5+struts2.2.1+hibernate3.6.0+blazeds4.0.0.14931完美整合方案",它将多个流行的技术框架整合在一起,为Web应用程序开发提供了一个强大的平台...