- 浏览: 1657702 次
- 性别:
文章分类
- 全部博客 (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 840spring jar 包详解 spr ... -
spring2.0升级到spring2.5
2009-07-22 15:09 872在spring2.0升级到spring2. ... -
spring2.5新特性(转)
2009-07-22 15:10 713简介 从诞生之初,Spring框架就坚守它的宗旨:简化企 ... -
Spring中使用FreeMaker或Vilocity模板发送邮件
2009-07-22 16:38 908本文以用户注册后为用户发送一封邮件为例子,讲述如何在Sprin ... -
Quartz与Spring的集成【转】
2009-08-05 15:21 8372.1 Scheduler 总入口 <bean n ... -
Quartz在Spring中动态设置cronExpression研究(spring设置动态定时任务)【转】
2009-08-05 15:49 882什么是动态定时任务:是由客户制定生成的,服务端只知道该 ... -
Spring结合Quartz实现多任务定时调用
2009-08-05 15:51 785Quartz框架提供了丰富的任务调度支持,比如 ... -
在Spring中使用Quartz进行任务调度
2009-08-06 10:30 882概述 各种企业应用几乎都会碰到任务调度的需求,就拿论坛 ... -
spring&quartz的项目应用总结
2009-08-06 12:20 912一.名词简介: Quartz是一个完全由java编写的开源作 ... -
Spring的transactionAttributes
2009-08-11 11:42 627PROPAGATION_REQUIRED--支持当前事务, ... -
Spring配置中transactionAttributes的意义
2009-08-11 11:43 843最近使用JSF+Spring+OpenJPA ... -
详解spring事务属性
2009-08-11 11:45 681Spring声明式事务让我们从复杂的事务处理中得到解脱。使得我 ... -
acegi参考的部分翻译
2009-08-20 15:34 669序 1. 安全 1.1 准备 1 ... -
Acegi Security -- Spring下最优秀的安全系统
2009-08-20 15:40 835一Acegi安全系统介绍 Author: cac 差沙 ... -
【SSI开发总结.1】struts2整合spring
2009-08-20 15:48 703在Struts2中整合Spring的IoC支持是一件十分简单的 ... -
【SSI开发总结.4】Spring中使用Acegi安全框架
2009-08-20 15:49 707Acegi认证授权主要基于 ... -
【SSI开发总结.3】基于ibatis的自定义分页
2009-08-20 15:49 825分页,在web应用程序中非常常见的功能,也是最基本的功能, ... -
【SSI开发总结.7】Struts+Spring+Ibatis环境配置(二)
2009-08-20 15:50 662spring提供了ibatis的模板类封装,通过简单的设置就能 ... -
【SSI开发总结.6】Struts+Spring+Ibatis环境配置(一)
2009-08-20 15:50 794为了使struts2和spring集成,必须下载一个 ... -
Spring 配置多个数据源
2009-08-20 16:05 731<?xml version="1.0&qu ...
相关推荐
- 启动Eclipse IDE,选择一个用于存放项目的空文件夹作为工作空间,例如`C:\sample\springdm`。 - Eclipse 3.3版本内嵌了Equinox 3.3 OSGi容器,这为开发和调试OSGi模块提供了便利。 **4. 导入Spring DM JAR文件*...
3. Spring-DM:Spring-DM 是 Spring 开发组织在 2008 年发布的,将 OSGi 和 Spring 结合的第一个版本。 4. dm Server:dm Server 是一个完全模块化部署的基于 OSGi 的 Java 服务器,为运行企业 Java 应用和 Spring ...
标题 "SpringDM笔记31-Testing with OSGi and SpringDM" 涉及到的是在OSGi环境中使用SpringDM进行测试的相关知识。OSGi(Open Service Gateway Initiative)是一种Java模块化系统,允许动态地发现、加载和卸载服务。...
标题“spring-dm-osgi整合jar包”和描述“spring-dm整合osgi所需所有jar包”提及的核心知识点是Spring Dynamic Modules(简称Spring DM)与OSGi(Open Service Gateway Initiative)框架的集成。这两个技术在Java...
打破僵局的Spring DM: Spring DM是基于OSGi的 Dynamic Module(动态模块),提供了动态模块化和灵活性的解决方案。Spring DM可以帮助开发者快速构建和部署基于OSGi的应用程序。 小结: OSGi框架提供了模块化、...
综上所述,基于OSGi和Spring开发Web应用不仅能够充分利用OSGi的模块化优势和Spring的依赖注入机制,还能借助dmServer和SpringSource应用平台等工具,实现更加高效、灵活和可靠的企业级应用开发。
**OSGI MAVEN SPRINGDM 文档集** 这个文档集主要涵盖了三个关键的Java开发技术:OSGI(Open Service Gateway Initiative)、Maven以及Spring Dynamic Modules(Spring DM)。这些技术都是现代Java开发中的重要组成...
标题 "OSGi&Spring 规范" 指向的是两个关键的Java技术领域:OSGi(Open Service Gateway Initiative)和Spring框架。OSGi是一种模块化系统和Java服务平台,它提供了一种标准的方式来创建、部署和管理Java应用程序。...
5. **使用Blueprint或PAX Wiring**:这两个是OSGI的XML配置模型,它们提供了在OSGI环境中声明和管理依赖的方式,可以方便地与Spring配置结合使用。 6. **打包和部署**:将所有bundle打包成jar文件,并部署到支持...
总的来说,基于OSGi和Spring的Web应用开发结合了两者的优点:OSGi提供了模块化和动态部署的能力,而Spring则带来了方便的依赖管理和服务注册。通过Spring-DM,开发者可以在OSGi环境中享受到Spring的便利,构建更灵活...
Spring OSGi是Spring框架与OSGi(Open Service Gateway Initiative)规范相结合的一种技术,它允许在OSGi容器中运行和管理Spring应用。OSGi是一种模块化系统,为Java应用程序提供了动态部署、版本控制和依赖管理的...
综上所述,《未来10年:OSGi、Spring_DM》这本书不仅系统地阐述了OSGi及其在企业应用中的重要性,而且还提供了大量的实践案例,对于希望深入了解OSGi和SpringDM的开发者来说是一本不可多得的好书。
Spring DM使得开发者可以利用Spring的强大功能,如依赖注入、AOP(面向切面编程)等,同时享受OSGi的灵活性和动态性。 **Java Runtime Environment(JRE):** JRE是Java应用程序运行所需的基础环境,包括Java...
标签"osgi springDM"进一步明确了关键技术和关注点。Spring DM是Spring针对OSGi环境的一个扩展,它提供了在OSGi容器中管理和部署Spring应用的能力。然而,需要注意的是,Spring DM在Spring 3.0之后被弃用,取而代之...
### Spring OSGi 入门知识点...以上内容为Spring OSGi入门的基本知识点,涵盖了Spring DM的基础概念、配置方法以及如何在OSGi环境中导出和引用服务等内容。这些知识点对于理解如何将Spring与OSGi结合使用具有重要意义。
### SpringDM与OSGI概述 #### OSGI概念解析 OSGI(Open Service Gateway Initiative),直译为“开放的服务网关初始化”,它是一系列针对Java动态化模块化系统的规范。OSGI不仅指代一个官方联盟,还代表着由该联盟...
### Spring OSGi 入门知识点详解 #### 一、Spring-DM与OSGi结合的优势 Spring Dynamic Modules (Spring DM) 是Spring Framework的一个扩展项目,它使得Spring可以在OSGi环境中运行,进而为开发者提供了模块化的...
通过Spring-DM,你可以利用Spring的依赖注入和配置管理能力,同时享受OSGI的模块化和动态性。 5. OSGI最佳实践: 掌握OSGI的最佳实践包括:合理划分bundle边界,确保每个bundle有明确的职责;利用Maven或Gradle等...