自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用Spring DM創(chuàng)建Hello World,以及OSGi服務(wù)

譯文
開發(fā) 后端
Spring DM框架支持OSGi套件的開發(fā),因此是學(xué)習(xí)OSGi的一個(gè)絕佳環(huán)境。本文將使用Spring DM來創(chuàng)建一個(gè)簡(jiǎn)單的Hello World應(yīng)用程序。

【51CTO精選譯文】本文是《你好,OSGi》系列的第七部分。現(xiàn)在讀者們多半已經(jīng)了解了何謂Spring DM,它和OSGi的關(guān)系,以及Spring DM開發(fā)環(huán)境的設(shè)置,那么下面將要開始進(jìn)行應(yīng)用程序的開發(fā)了。

51CTO編輯推薦:OSGi入門與實(shí)踐全攻略

歡迎來到 Spring 世界!

在這一部分,我們將使用 Spring DM來創(chuàng)建一個(gè)簡(jiǎn)單的 Hello World 應(yīng)用程序。這個(gè)非常簡(jiǎn)單的應(yīng)用程序?qū)⒃趩?dòng)時(shí)在你的控制臺(tái)上輸出“Hello Spring World!!”,并且在關(guān)閉時(shí)輸出“Goodbye Spring World!!”。***步是創(chuàng)建一個(gè)簡(jiǎn)單的 HelloWorld.java 類,請(qǐng)參見以下代碼:

代碼清單1. HelloWorld.java

  1. package com.javaworld.osgi.spring;  
  2. public class HelloWorld {  
  3. public void start() throws Exception {  
  4. System.out.println("Hello Spring World!! " );  
  5. }  
  6. public void stop() throws Exception {  
  7. System.out.println("Goodbye Spring World!!");  
  8. }  
  9. }  
  10.  

正如你所見,HelloWorld.java 是一個(gè)簡(jiǎn)單的類,它沒有實(shí)施任何借口或者擴(kuò)展任何超類(superclass)。它包含兩個(gè)方法:start() 和 stop()。在應(yīng)用程序啟動(dòng)時(shí)調(diào)用 start() 方法;關(guān)閉時(shí)調(diào)用stop()方法。

下一步是在 META-INF/spring 文件夾中創(chuàng)建一個(gè)helloworld.xml 文件:

代碼清單 2. helloworld.xml

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

在該文件中,只聲明了一個(gè)名為hello 的 bean,指向com.javaworld.osgi.spring.HelloWorld  類。該 bean 的 init-method 值為 start。destroy-method 屬性的值為stop。

當(dāng)將你的應(yīng)用程序zuowei Eclipse OSGi 應(yīng)用程序執(zhí)行時(shí),應(yīng)可以在你的控制臺(tái)上看到“Hello Spring World!!”這條消息。怎么會(huì)這么簡(jiǎn)單?是對(duì),當(dāng)你創(chuàng)建 META-INF/spring 文件夾并保護(hù)你的 helloworld.xml 文件時(shí),已經(jīng)對(duì)其進(jìn)行了設(shè)置。

當(dāng) extender 套件啟動(dòng)時(shí),它會(huì)發(fā)現(xiàn)你的 HelloWorld 套件是由 Spring 提供的。hello  bean 已經(jīng)將 start() 定義為它的初始化方法,因此 Spring 框架將調(diào)用 HelloWorld 類的 start() 方法。同樣,當(dāng)你關(guān)閉 HelloWorld 套件時(shí),Spring 框架將調(diào)用 HelloWorld.java 的 stop() 方法。

Spring DM中面向服務(wù)的應(yīng)用程序

OSGi 在面向服務(wù)應(yīng)用程序開發(fā)方面的適用性是其最讓人關(guān)注的功能之一。OSGi服務(wù)平臺(tái)運(yùn)行 OSGi服務(wù)構(gòu)建的、面向服務(wù)的應(yīng)用程序。這一服務(wù)只是一個(gè)簡(jiǎn)單的Java 對(duì)象,在一個(gè)或多個(gè)接口名稱下發(fā)布。OSGi 服務(wù)平臺(tái)的構(gòu)思是一個(gè)源(source)套件在一個(gè)公共的寄存器導(dǎo)出服務(wù)。然后消費(fèi)者(consumer)搜索實(shí)施了某一特定接口的服務(wù);一旦找到就將其與該服務(wù)綁定并使用它。

在構(gòu)建復(fù)雜的企業(yè)應(yīng)用程序時(shí),OSGi服務(wù)平臺(tái)非常有用。例如,假設(shè)我們要?jiǎng)?chuàng)建一個(gè) Web 應(yīng)用程序,那么在 OSGi 實(shí)施中,你可以將該應(yīng)用程序分為兩個(gè)套件。數(shù)據(jù)訪問套件可與數(shù)據(jù)庫(kù)互動(dòng)并將數(shù)據(jù)訪問服務(wù)導(dǎo)出至一個(gè)公共寄存器。Web 層套件將導(dǎo)入數(shù)據(jù)訪問服務(wù)并使用它們將數(shù)據(jù)顯示給終端用戶。

這種基于模塊化架構(gòu)進(jìn)行應(yīng)用程序創(chuàng)建的設(shè)計(jì)讓數(shù)據(jù)訪問服務(wù)的更新變得非常容易。比如,要從一個(gè)較慢的服務(wù)更新到一個(gè)較快的服務(wù),你可以創(chuàng)建一個(gè)不同的數(shù)據(jù)訪問服務(wù),來和 Web 服務(wù)實(shí)現(xiàn)進(jìn)行會(huì)話,然后將 RDMBS 服務(wù)替換為這一新的服務(wù),而且無需重啟你的應(yīng)用程序。

在下一個(gè)部分我們將構(gòu)建一個(gè)面向服務(wù)的聯(lián)絡(luò)管理應(yīng)用程序。該應(yīng)用程序?qū)⒀菔?Spring bean 如何能夠被導(dǎo)出為 OSGi服務(wù),以及 OSGi服務(wù)如何導(dǎo)出為 Spring bean。

【編輯推薦】

  1. OSGi與Spring:設(shè)置Spring DM開發(fā)環(huán)境
  2. OSGi和Spring入門:什么是Spring動(dòng)態(tài)模型(Spring DM)?
  3. OSGi服務(wù):非常適合SOA的架構(gòu)
  4. OSGi依賴性管理:Bundle訪問域
  5. OSGi是什么:Java語言的動(dòng)態(tài)模塊系統(tǒng)
責(zé)任編輯:yangsai 來源: 51CTO.com
相關(guān)推薦

2009-09-16 17:15:19

OSGi Bundle

2009-10-09 13:42:56

Spring DataSpring DM

2009-09-28 13:13:16

設(shè)置Spring DM

2009-09-27 09:29:56

OSGi和SpringSpring動(dòng)態(tài)模型Spring DM

2009-10-19 14:14:19

OSGi Web應(yīng)用

2021-11-26 08:22:01

Java動(dòng)態(tài)開發(fā)

2014-12-19 10:07:10

C

2017-11-23 17:45:46

Yii框架IntelYii框架深度剖析

2022-11-04 08:29:12

NodejsHttp 服務(wù)

2009-07-30 13:21:17

Scala入門Hello World

2023-01-06 08:18:44

2009-08-11 10:32:23

什么是Groovy

2023-09-04 07:30:03

Wasm匯編語言

2011-06-08 14:39:06

Qt 教程

2012-02-20 14:26:48

JavaPlay Framew

2022-04-27 10:51:00

PythonMLCubePodman

2009-06-18 15:24:08

Spring OSGi

2023-05-23 08:01:10

Netty網(wǎng)絡(luò)通信

2009-08-14 16:54:19

C# Hello Wo

2024-04-11 13:13:27

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)