`

使用Spring DM创建Hello World,以及OSGi服务

 
阅读更多

【51CTO精选译文】本文是《你好,OSGi 》系列的第七部分。现在读者们多半已经了解了何谓Spring DM,它和OSGi的关系,以及Spring DM开发环境的设置,那么下面将要开始进行应用程序的开发了。

51CTO编辑推荐: OSGi入门与实践全攻略

欢迎来到 Spring 世界!

在这一部分,我们将使用 Spring DM来创建一个简单的 Hello World 应用程序。这个非常简单的应用程序将在启动时在你的控制台上输出“Hello Spring World!!”,并且在关闭时输出“Goodbye Spring World!!”。第一步是创建一个简单的 HelloWorld.java 类,请参见以下代码:

代码清单1. HelloWorld.java

package com.javaworld.osgi.spring;
public class HelloWorld {
public void start() throws Exception {
System.out.println("Hello Spring World!! " );
}
public void stop() throws Exception {
System.out.println("Goodbye Spring World!!");
}
}

正如你所见,HelloWorld.java 是一个简单的类,它没有实施任何借口或者扩展任何超类(superclass)。它包含两个方法:start() 和 stop()。在应用程序启动时调用 start() 方法;关闭时调用stop()方法。

下一步是在 META-INF/spring 文件夹中创建一个helloworld.xml 文件:

代码清单 2. helloworld.xml

< ?xml version="1.0" encoding="UTF-8"?>
< beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
< bean name="hello" class="com.javaworld.osgi.spring.HelloWorld"
init-method="start" destroy-method="stop" />
< /beans>

在该文件中,只声明了一个名为hello 的 bean,指向com.javaworld.osgi.spring.HelloWorld 类。该 bean 的 init-method 值为 start。destroy-method 属性的值为stop。

当将你的应用程序zuowei Eclipse OSGi 应用程序执行时,应可以在你的控制台上看到“Hello Spring World!!”这条消息。怎么会这么简单?是对,当你创建 META-INF/spring 文件夹并保护你的 helloworld.xml 文件时,已经对其进行了设置。

当 extender 套件启动时,它会发现你的 HelloWorld 套件是由 Spring 提供的。hello bean 已经将 start() 定义为它的初始化方法,因此 Spring 框架将调用 HelloWorld 类的 start() 方法。同样,当你关闭 HelloWorld 套件时,Spring 框架将调用 HelloWorld.java 的 stop() 方法。

Spring DM中面向服务的应用程序

OSGi 在面向服务应用程序开发方面的适用性 是其最让人关注的功能之一。OSGi服务平台运行 OSGi服务构建的、面向服务的应用程序。这一服务只是一个简单的Java 对象,在一个或多个接口名称下发布。OSGi 服务平台的构思是一个源(source)套件在一个公共的寄存器导出服务。然后消费者(consumer)搜索实施了某一特定接口的服务;一旦找到就将其 与该服务绑定并使用它。

在构建复杂的企业应用程序时,OSGi服务平台非常有用。例如,假设我们要创建一个 Web 应用程序,那么在 OSGi 实施中,你可以将该应用程序分为两个套件。数据访问套件可与数据库互动并将数据访问服务导出至一个公共寄存器。Web 层套件将导入数据访问服务并使用它们将数据显示给终端用户。

这种基于模块化架构进行应用程序创建的设计让数据访问服务的更新变得非常容易。比如,要从一个较慢的服务更新到一个较快的服务,你可以创建一个不同 的数据访问服务,来和 Web 服务实现进行会话,然后将 RDMBS 服务替换为这一新的服务,而且无需重启你的应用程序。

在下一个部分我们将构建一个面向服务的联络管理应用程序。该应用程序将演示 Spring bean 如何能够被导出为 OSGi服务,以及 OSGi服务如何导出为 Spring bean。

分享到:
评论

相关推荐

    学习SpringDM+OSGI的总结

    例如,SpringDM中的`org.springframework.osgi.core`构建所需的JDK版本为1.5,而现代开发环境中通常使用更高版本的JDK。这可能导致项目无法正常编译或运行。 2. **依赖管理**:为了解决版本冲突问题,可能需要调整...

    SpringDM笔记31-Testing with OSGi and SpringDM

    2. **SpringDM原理**:SpringDM是Spring Framework的一个扩展,它允许开发者在OSGi环境中使用熟悉的Spring配置方式来管理和配置服务。它提供了基于XML或注解的配置模型,使得开发者可以在OSGi容器中声明依赖关系和...

    spring-dm-osgi整合jar包

    Spring DM的主要目标是简化OSGi服务的生命周期管理和配置,使得开发者能够像在非OSGi环境中一样轻松地使用Spring。 OSGi是一种基于Java的模块化系统,它定义了一个标准的框架,用于创建、部署和管理模块化应用程序...

    SpringDM笔记13-OSGi服务注册与引用

    在SpringDM(Spring Dynamic Modules)框架中,OSGi(Open Service Gateway Initiative)服务注册与引用是核心功能之一,它使得模块化系统中的组件能够互相发现并交互。本篇笔记将探讨如何在OSGi环境中注册服务以及...

    基于spring dm server 的osgi 例子

    【标题】:“基于Spring DM Server的OSGi实例” 在IT领域,OSGi(Open Services Gateway Initiative)是一种模块化系统和Java...对于学习和理解OSGi以及Spring DM Server的开发者来说,这是一个非常有价值的参考案例。

    OSGi与Spring:Spring DM开发

    Spring DM不仅充分利用了Spring框架的强大功能,还实现了与OSGi规范的高度集成,使得开发者可以在OSGi环境下无缝地使用Spring的各种特性。Spring DM框架支持OSGi Specification Release 4及以上版本,同时兼容JDK ...

    SpringDM笔记7-开发SpringDM Bundle

    Spring配置文件可以使用标准的Spring XML格式,但需添加一些特定于OSGi的元素,如`&lt;osgi:reference&gt;`用于声明对其他服务的依赖,以及`&lt;osgi:service&gt;`用于发布自己的服务。SpringDM会自动处理服务的注册和解注册,...

    OSGi HelloWorld实例

    "OSGi HelloWorld实例"是一个典型的入门教程,旨在帮助初学者理解如何在OSGi环境中创建和运行一个简单的程序。 首先,我们需要了解OSGi的基本概念: 1. **模块(Bundle)**:在OSGi中,模块是软件的基本单元,它们...

    spring osgi相关资源

    Spring OSGi是Spring框架与OSGi(Open Service Gateway Initiative)规范相结合的一种技术,它...通过学习和掌握Spring DM Server的使用以及Spring OSGi的相关库,开发者可以更好地在OSGi环境中构建和管理Spring应用。

    spring DM英文版

    此外,实践是提高技能的关键,通过分析提供的示例和自己动手创建项目,你会更深入地理解Spring DM在OSGi环境中的作用和使用方法。在实际工作中,Spring DM可以帮助你构建更加灵活、可维护的大型企业应用,值得学习和...

    osgi+maven+springdm文档集

    这个文档集主要涵盖了三个关键的Java开发技术:OSGI(Open Service Gateway Initiative)、Maven以及Spring Dynamic Modules(Spring DM)。这些技术都是现代Java开发中的重要组成部分,特别是在模块化系统和企业级...

    SpringDM笔记28-Spring And OSGi:Layers of Integration

    标题中的"SpringDM笔记28-Spring And OSGi:Layers of Integration"表明这是一篇关于Spring框架与OSGi(Open Service Gateway Initiative)集成的详细笔记。OSGi是一种模块化系统,它允许Java应用程序以模块化的方式...

    SpringDM开发文档

    这包括如何创建和管理OSGi服务,如何使用SpringDM的生命周期管理特性,以及如何利用Eclipse和Maven的工具支持,优化开发流程。此外,书中可能还会涉及故障排查技巧、性能优化以及与其他OSGi服务(如 Blueprint 或 ...

    osgi选型比较 实例Equinox、Apache Felix与Spring DM

    Spring DM提供了在OSGi环境中管理和配置服务的能力,使得开发者能使用Spring的编程模型。由于Spring的广泛使用,Spring DM对于已经熟悉Spring的团队来说是一个自然的选择。然而,Spring DM自2012年后已不再更新,...

    Spring DM

    阅读《spring-dm-reference.pdf》这份文档,你可以深入理解Spring DM的各个方面,包括其设计理念、基本概念、配置语法、编程模型以及如何与各种OSGi容器集成。此外,文档还可能涵盖了故障排查、性能优化和最佳实践等...

    springDM+felix

    2. **Spring DM工作原理**:学习如何在OSGi环境中使用Spring DM配置服务,包括元数据描述、服务的声明式管理以及依赖注入。 3. **Apache Felix的使用**:掌握创建、部署和管理OSGi bundle的基本步骤,以及如何在...

    springDM source

    通过使用SpringDM,开发者能够在OSGi平台上构建更灵活、模块化且易于维护的Java应用,利用OSGi的优势,如动态服务发现、模块化的依赖管理和热部署等。SpringDM源代码的获取和研究可以帮助开发者深入了解其工作原理,...

Global site tag (gtag.js) - Google Analytics