- 浏览: 1596333 次
- 性别:
文章分类
- 全部博客 (2929)
- 非技术 (18)
- Eclipse (11)
- JAVA (31)
- 正则表达式 (0)
- J2EE (4)
- DOS命令 (2)
- WEB前端 (52)
- JavaScript (69)
- 数据库 (8)
- 设计模式 (0)
- JFreechart (1)
- 操作系统 (1)
- 互联网 (10)
- EasyMock (1)
- jQuery (5)
- Struts2 (12)
- Spring (24)
- 浏览器 (16)
- OGNL (1)
- WebService (12)
- OSGi (14)
- 软件 (10)
- Tomcat (2)
- Ext (3)
- SiteMesh (2)
- 开源软件 (2)
- Hibernate (2)
- Quartz (6)
- iBatis (2)
最新评论
【51CTO精选译文】本文是《你好,OSGi 》系列的第 五部分。从本篇开始将讲述Spring动态模型。我们将一起来发现,为什么Spring动态模型对于开发者是一个如此令人兴奋的选择。这些开发者已经对 Spring配置非常熟悉,并需要挖掘OSGi的模块性、简易的版本控制以及应用程序生命周期支持。
51CTO编辑推荐: OSGi入门与实践全攻略
使用OSGi和Spring构建面向服务的应用程序
OSGi,也称为 Java 语言动态模块系统 ,它为 Java 应用程序开发指定了一种模块方法,以及一组标准化的模块,用于管理模块之间的从属性。OSGi服务平台的Spring动态模型项目(即 Spring动态模型,简称Spring DM )允许开发者构建Spring应用程序,这种应用程序能够在OSGi容器中进行部署。对于熟悉 Spring编程和配置模型的 Java 企业开发者,Spring动态模型是一种较为简易的方式,可用来熟悉OSGi的应用程序开发的模块化方法。除了允许Spring开发者进行OSGi的模块 化架构和动态配置之外,Spring动态模型还提供了多数OSGi应用程序所需的低阶编程,因此你能够将重点放在应用程序的业务逻辑上。
在该系列文章的第一节中(《你好,OSGi,第一 节:Bundles 入门 》),我们介绍了一种OSGi开发的标准方式,使用了OSGiAPI 和开源的 Equinox 容器实施。你已经学习了有关OSGi架构的知识,尤其是容器和套件(bundle),并且第一次开发了一个基于OSGi的 Hello World 应用程序。由于这个示例的目标仅仅是为了理解OSGi的基础功能,因此该应用程序示例并不是很深入。
在本节中,你将再次构建一个 Hello World 应 用程序,这次将使用Spring动态模型框架。你将会学到什么是Spring DM以及它在模块中利用OSGi应用程序逻辑的分离性,以及其模块边界的运行时强制执行。此外,你还会学习如何使用Spring动态模型完成以下事项:
在正在运行的系统中,动态安装,升级以及卸载模块。
通过动态地发现和使用系统中其他模块提供的服务,构建面向服务的应用程序(SOA)。
使用Spring的 DataSource 类对系统模块之间以及跨越系统模块的组件进行实例化、配置、组装(assemble)以及添加装饰性功能。
你将看到,使用Spring动态模型可以让你免除某些死板的机械工作,以及更为困难的工作:理解OSGi框架之下发生了什么。因此,你将能够深入挖 掘应用程序逻辑,并在开发流程中更快地完成这种挖掘。
为了理解本节中的示例,你需要一个包含 Eclipse 3.3 和Spring动态模型的开发环境。
OSGi和Spring框架
目前OSGi的流行程度增加急速上升。某些应用程序服务器已经记过重新装备以利用OSGi的模块化框架,其中包括 IBM 的 WebSphere 应用程序服务器、BEA 的 microService 架构(mSA),以及JOnAS 5,一个开源的应用程序服务器,该服务器在OSGi的架构之上从基础进行构建。JBoss 也在开发基于OSGi的类加载程序(classloader)并计划参加一个OSGi核心规则实施。也许最重要的是,Eclipse 基金会(Eclipse Foundation)的OSGi容器/运行时组件引擎 Equinox 最近已经升级为顶级的项目状态,在这种状态下,它将被用作新的 Eclipse 运行时规范(Eclipse Runtime Initiative)的基础。
甚至在OSGi当前的流行度激增之前,已经存在将其与Spring组合中一起的讨论,这一讨论带来了OSGi服务平台的Spring动态模型 (SpringDynamic Modules forOSGiService Platforms )项目。Spring动态模型的功能可以划分为两个主要部分:第一个功能是它以OSGi套件(bundle)的形式提供Spring框架 JAR。从上一章节中你已经了解到,OSGi套件不过是 Java Achive(JAR)文件,这些文件在一个 META-INF/MANIFEST.MF 文件中包含了额外的条目,它可以作为OSGi套件的部署描述器(descriptor)。(请注意,在使用OSGi时,你不能够直接部署 JAR 文件;你需要使用OSGi套件格式对其进行装配。)
第二个功能,Spring DM提供了三个OSGi专用的Spring套件/JAR:
1. org.springframeork.osgi.bundle.extender
2. org.springframeork.osgi.bundle.core
3. org.springframeork.osgi.bundle.io
使用Spring动态模型构建的应用程序,其构建方式不同于那些使用Spring框架的应用程序。当构建一个Spring应用程序时,你在一个或多 个Spring配置文件中定义了配置信息,这种配置文件绝大多数为 XML 文件。在应用程序启动时,Spring框架使用这些配置文件创建应用程序语境(application-context)对象。当应用程序语境创建之后, 它将用于对该应用程序中的对象进行实例化、配置、组装(assemble)以及添加装饰性功能。
对于Spring动态模型,在启动时,org.springframeork.osgi.bundle.extender 查询所有处于解析(resolved)状态以了解它们是否由Spring提供(Springpowered)。如果套件具有Spring-Context 清单头(manifest header),或者在其 META-INF/spring 文件夹中包含 XML 文件,extender 套件将认为该套件是由Spring提供的。
当找到Spring提供的套件时,org.springframeork.osgi.bundle.extender 将在该套件中加载Spring配置文件,以并它创建一个应用程序-语境对象。在创建应用程序-语境对象时,该 extender 还会检查该套件是否正在输出OSGi服务。如果是,它将输出该Springbean 到OSGi共享服务寄存器(registry)。如果套件正在导入OSGi服务,它将找到该服务并将其作为该 bean 的应用程序语境中的正常Springbean 进行添加。该 extender 还为套件事件注册了一个监听器,这样,无论任何OSGi套件是否进入解析状态,它都将检查它是否由Spring提供并遵循相同的步骤。
在接下来的文章中,你将从设置相关环境开始,开发出你的第一个Spring动态模型应用程序,在这一过程中,上述问题都将变得明朗清晰。敬请期待!
发表评论
-
spring2.0和spring2.5及以上版本的jar包区别 spring jar 包详解
2009-07-22 15:07 811spring jar 包详解 spr ... -
spring2.0升级到spring2.5
2009-07-22 15:09 824在spring2.0升级到spring2. ... -
spring2.5新特性(转)
2009-07-22 15:10 682简介 从诞生之初,Spring框架就坚守它的宗旨:简化企 ... -
Spring中使用FreeMaker或Vilocity模板发送邮件
2009-07-22 16:38 877本文以用户注册后为用户发送一封邮件为例子,讲述如何在Sprin ... -
Quartz与Spring的集成【转】
2009-08-05 15:21 7992.1 Scheduler 总入口 <bean n ... -
Quartz在Spring中动态设置cronExpression研究(spring设置动态定时任务)【转】
2009-08-05 15:49 851什么是动态定时任务:是由客户制定生成的,服务端只知道该 ... -
Spring结合Quartz实现多任务定时调用
2009-08-05 15:51 751Quartz框架提供了丰富的任务调度支持,比如 ... -
在Spring中使用Quartz进行任务调度
2009-08-06 10:30 853概述 各种企业应用几乎都会碰到任务调度的需求,就拿论坛 ... -
spring&quartz的项目应用总结
2009-08-06 12:20 871一.名词简介: Quartz是一个完全由java编写的开源作 ... -
Spring的transactionAttributes
2009-08-11 11:42 603PROPAGATION_REQUIRED--支持当前事务, ... -
Spring配置中transactionAttributes的意义
2009-08-11 11:43 817最近使用JSF+Spring+OpenJPA ... -
详解spring事务属性
2009-08-11 11:45 655Spring声明式事务让我们从复杂的事务处理中得到解脱。使得我 ... -
acegi参考的部分翻译
2009-08-20 15:34 643序 1. 安全 1.1 准备 1 ... -
Acegi Security -- Spring下最优秀的安全系统
2009-08-20 15:40 800一Acegi安全系统介绍 Author: cac 差沙 ... -
【SSI开发总结.1】struts2整合spring
2009-08-20 15:48 671在Struts2中整合Spring的IoC支持是一件十分简单的 ... -
【SSI开发总结.4】Spring中使用Acegi安全框架
2009-08-20 15:49 684Acegi认证授权主要基于 ... -
【SSI开发总结.3】基于ibatis的自定义分页
2009-08-20 15:49 791分页,在web应用程序中非常常见的功能,也是最基本的功能, ... -
【SSI开发总结.7】Struts+Spring+Ibatis环境配置(二)
2009-08-20 15:50 608spring提供了ibatis的模板类封装,通过简单的设置就能 ... -
【SSI开发总结.6】Struts+Spring+Ibatis环境配置(一)
2009-08-20 15:50 755为了使struts2和spring集成,必须下载一个 ... -
Spring 配置多个数据源
2009-08-20 16:05 702<?xml version="1.0&qu ...
相关推荐
osig与spring:springDM开发环境配置,eclipse配置osgi开发环境,及命令
Spring-DM指的是 Spring ...Spring-DM 的主要目的是能够方便地将 Spring 框架和OSGi框架结合在一起,使得使用Spring的应用程序可以方便简单地部署在OSGi环境中,利用OSGi框架提供的服务,将应用变得 更加模块化。
osgi springdm.pdf
学习SpringDM+OSGI的一些总结,自我学习,上传文档防止丢失。
OSGi,也称为 Java 语言动态模块系统,它为 Java 应用程序开发指定了...OSGi服务平台的Spring动态模型项目(即Spring动态模型,简称Spring DM)允许开发者构建Spring应用程序,这种应用程序能够在OSGi容器中进行部署。
java 未来10年:OSGi、Spring_DM
关于OSGi当前流行技术的介绍,是OSGi入门首选~~
osgi_spring_dm_jrosgi_spring_dm_jrosgi_spring_dm_jrosgi_spring_dm_jrosgi_spring_dm_jr
spring-dm整合osgi所需所有jar包
NULL 博文链接:https://springsfeng.iteye.com/blog/1271565
* Building modular services using OSGi with Spring DM and Spring Dynamic Modules and SpringSource dm Server. * Delivering web applications with Spring Web Flow, Spring MVC, Spring Portals, Struts, ...
这是一本围绕OSGi及其在企业应用中的采纳情况进行描述的文档,对Spring和OSGI的原理和应用作了详细的阐述
一个基于spring dm server 的osgi 例子,描述了一个简单用户登陆的例子,不同的用户验证方式,用不同的bundle
本教程旨在帮助哪些已经掌握了OSGi和Spring技术基础 的开发人员,迅速将Spring DM应用于实际开发,这是一 份入门教程,不求全面,但求简单。
spring dm osgi 中的服务提供和模块化编程
spring osgi相关资源
里面有好几个文档,是我自己在研究的时候用到的,还不错,给大家分享下
Spring DM 1.1.x最大特性便...在多个Spring DM支持OSGi平台上运行)并且Spring DM Server并没有提供更多企业应用支持 不过对于刚 使用Spring DM进行WEB应用开发人来说成功地配置却不是件容易事,文档详细讲解了相关配置
osgi集成spring的应用 内涵各种jar包,直接可以使用
dm Server 是一个完全模块化部署的,基于OSGi的Java服务器,为运行企业Java应用和Spring应用提供更加强大的灵活性和可靠性。SpringSource应用平台是构建在Spring、OSGi和Apache Tomcat之上的应用服务器,这个新的...