
[51CTO特色翻译]本文为“您好,OSGi
》系列中的第一个
五个部分. 从本文开始,将描述Spring动态模型. 我们将一起发现为什么Spring动态模型对于开发人员来说是一个如此令人兴奋的选择. 这些开发人员说的没错
Spring配置非常熟悉,需要利用OSGi的模块化,易于版本控制和应用程序生命周期支持.
51CTO编辑推荐:
OSGi入门和实践攻略
使用OSGi和Spring构建面向服务的应用程序
OSGi,也称为Java
语言动态模块系统
,它是Java
应用程序开发指定了一种模块方法和一组标准化的模块,用于管理模块之间的依赖性. OSGi服务平台的春季动态模型项目(即
Spring动态模型,称为Spring DM
)允许开发人员构建可以在OSGi容器中部署的Spring应用程序. 为了熟悉

用于Spring编程和配置模型的Java
对于企业开发人员而言,Spring动态模型是让您熟悉OSGi应用程序开发的模块化方法的相对简单的方法. 除了允许Spring开发人员制作OSGi模块
除了架构和动态配置之外,Spring动态模型还提供了大多数OSGi应用程序所需的低级编程,因此您可以专注于应用程序的业务逻辑.
在本系列文章的第一部分(“您好,OSGi,第一
部分: 捆绑包入门
》),我们介绍了使用OSGiAPI和开源Equinox开发OSGi的标准方法
容器实现. 您已经了解了OSGi架构,尤其是容器和捆绑软件,并首次基于OSGi开发了Hello World.
应用程序. 由于本示例的目的只是为了了解OSGi的基本功能osgi框架是什么,因此本应用示例并不十分深入.
在本节中,您将再次构建一个Hello World
应该
应用程序,这次将使用Spring动态模型框架. 您将学到的是春天
DM及其在模块中使用OSGi应用程序逻辑的分离,以及其模块边界的运行时强制. 此外,您还将学习如何使用Spring动态模型完成以下任务:
在运行中的系统中,动态安装,升级和卸载模块.

通过动态发现和使用系统中其他模块提供的服务来构建面向服务的应用程序(SOA).
使用Spring的数据源
The
类在系统模块之间以及系统模块之间的组件之间实例化,配置,组装和添加装饰功能.
您将会看到,使用Spring动态模型可以使您免于繁琐的机械工作以及更艰巨的工作: 了解OSGi框架下正在发生的事情. 因此,您将能够更深入地挖掘
探索应用程序逻辑并在开发过程中更快地完成挖掘.
要理解本节中的示例,您需要一个包含Eclipse 3.3和Spring动态模型的开发环境.
OSGi和Spring框架
OSGi的受欢迎程度正在迅速增加. 记得某些应用服务器需要重新配置以利用OSGi的模块化框架,包括IBM的WebSphere
应用服务器,BEA的微服务架构(mSA)和JOnAS
5. 一个开源应用程序服务器,它是基于OSGi架构的基础构建的. JBoss
我们还正在开发基于OSGi的类加载器,并计划参与OSGi核心规则的实施. 也许最重要的是Eclipse
Eclipse Foundation的OSGi容器/运行时组件引擎Equinox

它最近已升级到顶级项目状态,在此状态下它将用作新的Eclipse Runtime Specification(Eclipse Runtime)
主动).
在OSGi当前流行之前,就已经有关于将其与Spring结合的讨论. 讨论带来了OSGi服务平台的Spring动态模型
(用于OSGiService平台的SpringDynamic模块
)项. Spring动态模型的功能可以分为两个主要部分: 第一个功能是它以OSGi捆绑软件(冲压)的形式提供Spring框架
JAR. 正如您从上一章中学到的osgi框架是什么,OSGi套件只是Java Achive(JAR)文件,这些文件位于一个文件中.
META-INF / MANIFEST.MF
The
文件包含其他条目,这些条目可用作OSGi套件的部署描述符. (请注意,在使用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框架使用这些配置文件来创建应用程序上下文对象. 创建应用程序上下文后,
它将用于实例化,配置,组装和向应用程序中的对象添加装饰功能.
对于Spring动态模型,在启动时为org.springframeork.osgi.bundle.extender
查询所有处于已解析状态的对象,以查看它们是否由Spring(Springpowered)提供. 如果该工具包具有Spring-Context
清单头,或在其META-INF / spring文件夹扩展程序中包含XML文件
该套件将假定该套件由Spring提供.
找到Spring提供的软件包后,请org.springframeork.osgi.bundle.extender
Spring配置文件将被加载到套件中,以使用它创建一个应用程序上下文对象. 创建应用程序上下文对象时,扩展器
它还将检查套件是否正在导出OSGi服务. 如果是,它将输出Springbean
转到OSGi共享服务注册(注册表). 如果套件正在导入OSGi服务,它将找到该服务并将其用作Bean
在应用程序上下文中添加了普通的Springbean. 扩展剂
还为套件事件注册了一个侦听器,因此,无论任何OSGi套件是否进入解析状态,它都将检查Spring是否提供了该套件并遵循相同的步骤.
在下一篇文章中,您将首先设置相关的环境并开发您的第一个Spring动态模型应用程序. 在此过程中,以上问题将变得越来越清楚. 敬请期待!
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-251557-1.html
特么不小心插上电源
美国是德国的总督
知耻而后勇