`
何足道
  • 浏览: 34078 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

OSGi 和 Declarative Services

阅读更多

就像笔者在 怎样创建GWT+OSGi项目 这篇文章中所提到的,在Java世界, OSGi作为一个模块化系统和服务平台一直深受大家的喜爱, 而且随着Eclipse的成功和广受好评, OSGi应用越来越广泛, 小到一个Eclipse插件开发, 大到庞大的J2EE系统。

每一个OSGi的模块对应一个相对独立的解耦合的逻辑块,作为后台(back-end)体系中的OSGi模块,每一个模块常常都要提供至少一个服务,同时使用其他模块提供的服务。如果开发人员自行编写程序来处理模块为彼此提供和使用服务的关系,会十分复杂并且容易出错。在大型的项目开发和运行中,这样自行编写的程序常常会导致在OSGi模块生命周期中过早地实例化或者说启动了一些类或者服务,从而不必要地消耗系统内存和延缓项目运行的速度。

而通过使用Declarative Service,每一个模块显式地声明一些component,用来提供以及使用服务。Component以XML的格式定义,OSGi在runtime创建component的实例。每个模块可以有多个这样的xml文件,每个xml可以包含多个component声明。

这个xml第三行(implementation标签)的作用是告诉OSGi的Servie Component Runtime (SCR),我这个模块中有一个DefaultImplementationClass,将要使用其他模块的服务。第四行(reference标签)的作用是为这个模块声明了对com.csdn.core.model.csdn.CSDNService服务的引用,并且向SCR宣布在DefaultImplementationClass中将使用setCsdnService和unsetCsdnService来set和unset这个服务。(为了线程安全,这个set和unset方法一般定义为public synchronized)

这些XML都需要加入到manifest文件中:

<待续>



分享到:
评论

相关推荐

    declarative

    Declarative Services(DS),在OSGi环境中,是一种声明式的方式来管理服务和组件的机制。它的核心思想是通过XML配置文件来定义服务的提供者和消费者,而不是通过代码直接引用和依赖其他服务,从而实现更加灵活和...

    OSGi Technology 教程

    最后,"Getting Started with OSGi 8 Declarative Services and Dependencies.doc"详细阐述了DS的用法和优势,包括如何声明服务组件、依赖关系以及处理组件间的交互。 通过这个系列的教程,开发者将全面了解OSGi...

    osgi-ds对应的demo

    DS(Declarative Services)是OSGi框架中的一个重要组件,用于声明式地管理服务。它简化了服务的生命周期管理,让开发者能够通过XML配置文件声明服务的依赖和行为,而不是通过代码来控制。 在标题“osgi-ds对应的...

    OSGI 进阶源码和中文文档

    4. **DS(Declarative Services)**:DS是OSGI中的一种服务组件模型,它允许开发者通过XML配置文件声明服务的生命周期和依赖关系,简化了服务的管理和维护。 5. **事件机制**:OSGI提供了一种事件传递机制,允许...

    Intellij 13下OSGi的Maven例子

    客户端和服务端的实现通常会涉及到OSGi的Declarative Services(DS)或Blueprint,它们是声明式服务配置的方式,通过XML文件定义服务的依赖和行为。在DS中,我们可以使用`@Component`和`@Reference`注解来声明服务...

    OSGI入门和整合Spring

    3. **使用Declarative Services(DS)**:OSGI DS提供了一种声明式的方式来管理OSGI服务的生命周期,使得Spring的bean可以与OSGI服务无缝集成。 4. **动态依赖注入**:由于OSGI的动态性,服务可以在运行时添加或...

    OSGI简单示例

    1. **OSGI简单实例DS**:这里的DS可能指的是Declarative Services,它是OSGI框架中的一个组件模型。Declarative Services允许开发者声明式地定义服务及其依赖关系,而不是通过编程方式管理服务生命周期。通过XML配置...

    OSGI的消息机制及注册服务

    OSGI使用Declarative Services(DS)或者Programmatic Services来注册和获取服务。DS允许在XML配置文件中声明服务依赖,而Programmatic Services则是在代码中动态查找和绑定服务。 消息传递通常涉及到发布/订阅模型...

    osgi学习笔记(一)

    在《OSGI进阶.pdf》这本书中,可能涵盖了更深入的话题,比如bundle的打包和部署、服务注册与查找、bundle间通信的协议(如白板模式和Declarative Services)以及如何使用OSGi进行企业级应用开发。这本书可能会详细...

    《osgi与equinox 创建高度模块化的java系统》第6章DS代码

    Declarative Services(DS)是OSGi服务模型的一部分,它允许开发者在配置文件中声明服务的依赖关系和行为,而不是在代码中硬编码这些逻辑。DS通过监听服务注册和注销事件,自动管理组件的生命周期,使得组件可以透明...

    OSGI资料,OSGI进阶,OSGI实战,OSGI入门和整合Spring

    2. **Declarative Services(DS)**:利用OSGI的DS注解声明服务,简化Spring配置。 3. **Blueprint**:Spring的OSGI扩展,提供类似Spring XML配置的模块化服务定义方式。 4. **Aries SPI Fly**:一种用于将Spring...

    osgi基础demo-搭建servlet

    OSGi(Open Services Gateway Initiative)是一种模块化系统和Java服务框架,它允许在单个Java虚拟机(JVM)上动态地发现、安装、更新和卸载软件模块。Servlet是Java Web开发中用于处理HTTP请求的组件。在这个“osgi...

    OSGi 入门+进阶+实战

    5. **Blueprint或Declarative Services**:这两种是OSGi中的服务配置方式,Blueprint更接近XML,而Declarative Services使用注解,简化了服务的声明和管理。 6. **远程服务**:OSGi Remote Services允许Bundle之间...

    OSGI实战及源码

    7. **Blueprint和Declarative Services**:讲解OSGI中两种常见的服务配置方式,Blueprint XML和Declarative Services,它们简化了服务的声明和管理。 8. **Equinox与Felix**:作为OSGI实现的两个主流框架,Equinox...

    OSGi常用服务发布和获取方式总结

    OSGi(Open Services Gateway Initiative)是一种模块化系统和Java服务平台,它允许开发人员将应用程序分解为可独立更新和管理的模块。在OSGi环境中,服务是模块间通信的主要手段,而服务的发布和获取是OSGi核心概念...

    osgi资料

    - Spring与OSGi的整合:介绍如何在OSGi环境中使用Spring,如使用Declarative Services或Blueprint API。 - 微服务架构:讨论如何利用OSGi的模块化特性构建微服务,实现松耦合和独立部署。 - AOP在OSGi中的应用:...

    OSGI服务 DS EVENT

    DS(Declarative Services)是OSGI中的一个核心服务,它提供了声明式的方式来管理和装配服务。而EVENT则是DS中关于事件处理的部分,用于在OSGI组件之间传递信息和协调工作。 OSGI服务是一种动态的服务注册和发现...

    osgi相关文档、及学习资料

    可能会包括如何创建和打包OSGi Bundle、配置Manifest文件(包含Bundle的元数据)、使用Blueprint或Declarative Services进行服务声明、理解OSGi的生命周期管理以及如何在实际项目中应用OSGi技术。 **OSGi原理与最佳...

    osgi-tutorial.zip

    3. **使用Spring DM(Declarative Services)或Blueprint API**: Spring DM是Spring与OSGi集成的早期解决方案,现在已经由Blueprint API取代。这些API允许我们声明OSGi服务,并将它们注册为Spring beans,反之亦然。...

    OSGI整合Spring、Mybatis、Spring MVC实现一个登录应用案例

    在OSGI环境中,Spring可以通过Blueprint或Declarative Services来声明性地配置服务。在这个案例中,Spring将用于管理Bean的生命周期和装配,以及提供事务管理。 Mybatis是一个轻量级的持久层框架,它简化了SQL映射...

Global site tag (gtag.js) - Google Analytics