Blueprint的xml文档的顶层结点如下:
<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns=”http://www.osgi.org/xmlns/blueprint/v1.0.0”>
...
</blueprint>
在顶层结点下,你可以定义bean节点。bean节点可以定义为bean或者bean工厂,从bean结点可以获得bean实例,通过指定scope属性可以决定是否返回单例的bean实例:
scope=”singleton“ 节点将在初次引用时返回一个实例,并在后续的引用中都返回这个实例。
scope=“prototype” 节点在每次引用时都返回一个新的实例。
<bean id=”prototypeAccount” class=“com.ponder.Account”
scope=”prototype”>
<argument value=”4”/>
</bean>
<bean id=”singletonAccount” class=“com.ponder.Account”
scope=”singleton”>
<argument value=”5”/>
</bean>
bean节点可以通过property子节点注入常量、bean引用、OSGI service引用。
<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd" default-timeout="0">
<!--引用osgi服务,并注入bean(com.ponder.Processor)里 -->
<reference id="coderService" interface="com.ponder.ICoder" timeout="0"/>
<bean id="processor" class="com.ponder.Processor">
<!--与这里对应,类com.ponder.Processor里应定义有以下属性:
private com.ponder.ICoder coder;
并包含其setter。
-->
<property name="coder" ref="coderService"/>
</bean>
</blueprint>
上例将一个实现”com.ponder.ICoder”接口的OSGI service引用通过setCoder这个setter方法注入bean中。
分享到:
相关推荐
OSGi的入门资料,网上找的,初探OSGi 的全文
标题"OSGI入门和例子"意味着我们将探讨OSGI的基本概念以及如何通过实例来学习和理解这个框架。下面,我们将深入讨论OSGI的关键知识点: 1. **模块系统**:OSGI的核心是模块化,它定义了一种基于Java导出和导入包的...
2. **Eclipse集成开发环境**:Eclipse从3.0版本开始采用OSGi框架(Equinox),提升了性能、可扩展性,并简化了二次开发。 3. **企业级应用**:IBM WebSphere、BEA microServices、Apache Struts、Spring等均使用...
在本入门资料中,我们将探讨OSGI的关键概念、优势以及如何通过实战和最佳实践来掌握它。 1. OSGI原理: OSGI的核心在于它的模块系统,称为“bundle”。一个bundle是一个自包含的Java模块,包含了类、资源和元数据...
**Spring OSGi 快速入门中文教程** OSGi(Open Service Gateway Initiative)是一种Java模块化系统,它允许开发者创建可热更新、可隔离且互相依赖管理的模块。Spring OSGi是Spring框架与OSGi服务的结合,使得在OSGi...
OSGI简单入门.doc
本资料集合涵盖了OSGI的入门、进阶以及实战应用,特别是与Spring框架的整合。 《OSGI进阶》着重介绍了OSGI的核心概念和技术细节,包括: 1. **模块系统**:OSGI基于JAR文件作为模块的基本单位,每个模块都有自己的...
2. **创建OSGI服务**:在OSGI环境中,Spring的bean可以被声明为OSGI服务,这样其他bundle就可以通过服务注册表查找并消费这些服务。 3. **使用Declarative Services(DS)**:OSGI DS提供了一种声明式的方式来管理...
资源名称:OSGI原理与最佳实践内容简介:国内第一本OSGi图书OSGi国内推广者林昊多年经验的结晶涵盖OSGi从入门到深入的知识体系引领OSGi国内研究和普及本书基于作者多年使用OSGi的经验而编写,涵盖了OSGi从入门到深入...
关于SOA中热门技术OSGI的入门样例的经典版本,供对需要进行ERP设计和学习的入门读者使用的经典
2. **Spring OSGi 的优点** - **模块化**:OSGi 的模块化特性使得组件可以独立更新和扩展,降低了维护和升级的成本。 - **动态性**:OSGi 支持服务的热插拔,可以在运行时添加、移除或更新 bundle,而不影响其他...
2. **Spring与OSGi集成**:Spring Dynamic Modules (SDM) 提供了将Spring应用与OSGi环境结合的工具,使Spring应用能够充分利用OSGi的优势。 3. **Eclipse RCP开发**:Eclipse Rich Client Platform(RCP)是一个...
- **OSGi R4标准:**确保Bundle的Manifest中包含`Bundle-ManifestVersion: 2`,这是OSGi R4规范的要求。 - **调试环境搭建:**以Eclipse 3.2为例,需要安装Equinox 3.2.2,并将Spring DM相关的JAR文件复制到Eclipse...
OSGi(Open Services Gateway Initiative)是一种Java模块化系统和执行环境,它允许开发人员将应用程序分解为一组可独立更新和管理的小型服务组件。OSGi为Java应用提供了一个动态、模块化的运行时环境,使得软件组件...
2. 生命周期管理的必要性:对于非模块化应用,生命周期管理通常以整个应用为单位进行。而对于模块化应用,如OSGi中,生命周期管理可以实现更细粒度的控制,即针对应用中的各个模块。这种细粒度的控制极大地提高了...