成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

OSGi和Spring入門:什么是Spring動態(tài)模型(Spring DM)?

譯文
開發(fā) 后端
本文是OSGi和Spring入門的第一部分,首先介紹了什么是Spring動態(tài)模型。OSGi亦稱做Java語言的動態(tài)模塊系統(tǒng),它為模塊化應用的開發(fā)定義了一個基礎架構。

【51CTO精選譯文】本文是《你好,OSGi》系列的第五部分。從本篇開始將講述Spring動態(tài)模型。我們將一起來發(fā)現(xiàn),為什么Spring動態(tài)模型對于開發(fā)者是一個如此令人興奮的選擇。這些開發(fā)者已經(jīng)對Spring配置非常熟悉,并需要挖掘OSGi的模塊性、簡易的版本控制以及應用程序生命周期支持。

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

使用OSGi和Spring構建面向服務的應用程序

OSGi,也稱為 Java 語言動態(tài)模塊系統(tǒng),它為 Java 應用程序開發(fā)指定了一種模塊方法,以及一組標準化的模塊,用于管理模塊之間的從屬性。OSGi服務平臺的Spring動態(tài)模型項目(即Spring動態(tài)模型,簡稱Spring DM)允許開發(fā)者構建Spring應用程序,這種應用程序能夠在OSGi容器中進行部署。對于熟悉Spring編程和配置模型的 Java 企業(yè)開發(fā)者,Spring動態(tài)模型是一種較為簡易的方式,可用來熟悉OSGi的應用程序開發(fā)的模塊化方法。除了允許Spring開發(fā)者進行OSGi的模塊化架構和動態(tài)配置之外,Spring動態(tài)模型還提供了多數(shù)OSGi應用程序所需的低階編程,因此你能夠?qū)⒅攸c放在應用程序的業(yè)務邏輯上。

在該系列文章的第一節(jié)中(《你好,OSGi,第一節(jié):Bundles 入門》),我們介紹了一種OSGi開發(fā)的標準方式,使用了OSGiAPI 和開源的 Equinox 容器實施。你已經(jīng)學習了有關OSGi架構的知識,尤其是容器和套件(bundle),并且第一次開發(fā)了一個基于OSGi的 Hello World 應用程序。由于這個示例的目標僅僅是為了理解OSGi的基礎功能,因此該應用程序示例并不是很深入。

在本節(jié)中,你將再次構建一個 Hello World 應用程序,這次將使用Spring動態(tài)模型框架。你將會學到什么是Spring DM以及它在模塊中利用OSGi應用程序邏輯的分離性,以及其模塊邊界的運行時強制執(zhí)行。此外,你還會學習如何使用Spring動態(tài)模型完成以下事項:

在正在運行的系統(tǒng)中,動態(tài)安裝,升級以及卸載模塊。

通過動態(tài)地發(fā)現(xiàn)和使用系統(tǒng)中其他模塊提供的服務,構建面向服務的應用程序(SOA)。

使用Spring的 DataSource 類對系統(tǒng)模塊之間以及跨越系統(tǒng)模塊的組件進行實例化、配置、組裝(assemble)以及添加裝飾性功能。

你將看到,使用Spring動態(tài)模型可以讓你免除某些死板的機械工作,以及更為困難的工作:理解OSGi框架之下發(fā)生了什么。因此,你將能夠深入挖掘應用程序邏輯,并在開發(fā)流程中更快地完成這種挖掘。

為了理解本節(jié)中的示例,你需要一個包含 Eclipse 3.3 和Spring動態(tài)模型的開發(fā)環(huán)境。

OSGi和Spring框架

目前OSGi的流行程度增加急速上升。某些應用程序服務器已經(jīng)記過重新裝備以利用OSGi的模塊化框架,其中包括 IBM 的 WebSphere 應用程序服務器、BEA 的 microService 架構(mSA),以及JOnAS 5,一個開源的應用程序服務器,該服務器在OSGi的架構之上從基礎進行構建。JBoss 也在開發(fā)基于OSGi的類加載程序(classloader)并計劃參加一個OSGi核心規(guī)則實施。也許最重要的是,Eclipse 基金會(Eclipse Foundation)的OSGi容器/運行時組件引擎 Equinox 最近已經(jīng)升級為頂級的項目狀態(tài),在這種狀態(tài)下,它將被用作新的 Eclipse 運行時規(guī)范(Eclipse Runtime Initiative)的基礎。

甚至在OSGi當前的流行度激增之前,已經(jīng)存在將其與Spring組合中一起的討論,這一討論帶來了OSGi服務平臺的Spring動態(tài)模型(SpringDynamic Modules forOSGiService Platforms )項目。Spring動態(tài)模型的功能可以劃分為兩個主要部分:第一個功能是它以OSGi套件(bundle)的形式提供Spring框架 JAR。從上一章節(jié)中你已經(jīng)了解到,OSGi套件不過是 Java Achive(JAR)文件,這些文件在一個 META-INF/MANIFEST.MF 文件中包含了額外的條目,它可以作為OSGi套件的部署描述器(descriptor)。(請注意,在使用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動態(tài)模型構建的應用程序,其構建方式不同于那些使用Spring框架的應用程序。當構建一個Spring應用程序時,你在一個或多個Spring配置文件中定義了配置信息,這種配置文件絕大多數(shù)為 XML 文件。在應用程序啟動時,Spring框架使用這些配置文件創(chuàng)建應用程序語境(application-context)對象。當應用程序語境創(chuàng)建之后,它將用于對該應用程序中的對象進行實例化、配置、組裝(assemble)以及添加裝飾性功能。

對于Spring動態(tài)模型,在啟動時,org.springframeork.osgi.bundle.extender 查詢所有處于解析(resolved)狀態(tài)以了解它們是否由Spring提供(Springpowered)。如果套件具有Spring-Context 清單頭(manifest header),或者在其 META-INF/spring  文件夾中包含 XML 文件,extender 套件將認為該套件是由Spring提供的。

當找到Spring提供的套件時,org.springframeork.osgi.bundle.extender 將在該套件中加載Spring配置文件,以并它創(chuàng)建一個應用程序-語境對象。在創(chuàng)建應用程序-語境對象時,該 extender 還會檢查該套件是否正在輸出OSGi服務。如果是,它將輸出該Springbean 到OSGi共享服務寄存器(registry)。如果套件正在導入OSGi服務,它將找到該服務并將其作為該 bean 的應用程序語境中的正常Springbean 進行添加。該 extender 還為套件事件注冊了一個監(jiān)聽器,這樣,無論任何OSGi套件是否進入解析狀態(tài),它都將檢查它是否由Spring提供并遵循相同的步驟。

在接下來的文章中,你將從設置相關環(huán)境開始,開發(fā)出你的第一個Spring動態(tài)模型應用程序,在這一過程中,上述問題都將變得明朗清晰。敬請期待!

【編輯推薦】

  1. OSGi服務:非常適合SOA的架構
  2. OSGi依賴性管理:Bundle訪問域
  3. OSGi Bundle之Hello World
  4. OSGi是什么:Java語言的動態(tài)模塊系統(tǒng)
  5. OSGi 4.2將于8月發(fā)布 新版特性預覽
責任編輯:yangsai 來源: 51CTO.com
相關推薦

2009-10-09 13:42:56

Spring DataSpring DM

2009-09-28 13:13:16

設置Spring DM

2009-09-28 14:49:08

Spring DMOSGi服務

2009-06-18 15:24:08

Spring OSGi

2009-03-03 10:06:00

IBMJavaOSGi

2009-06-01 10:28:03

SpringOSGi整合

2009-07-09 09:18:50

Spring Tool

2009-10-29 09:52:55

OSGi

2010-04-07 08:55:00

OSGiSpring

2009-06-26 17:34:29

Spring入門

2009-06-19 13:28:30

Spring AOPSpring 2.0

2025-06-30 01:33:00

2009-06-01 10:40:26

SpringOSGI中文手冊

2009-06-11 17:03:22

Spring起源Spring優(yōu)點

2009-07-10 15:24:33

MyEclipse開發(fā)Spring

2019-09-19 15:12:27

Spring策略框架

2021-09-03 06:46:34

Spring 6pring Boot 項目

2021-09-15 09:02:20

Spring 6Spring BootJava

2011-02-28 13:34:51

SpringMVC

2021-11-10 05:00:30

服務器Spring授權
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲成人一区二区 | 伊人影院在线观看 | 亚洲国产情侣自拍 | 久久国产精品免费一区二区三区 | 久久伊人在 | 国产精品99一区二区 | 成人国产精品久久久 | 日韩欧美视频免费在线观看 | 欧美视频在线看 | 一区二区免费 | 北条麻妃av一区二区三区 | 成人精品一区二区 | 成人免费一区二区三区视频网站 | 成人一区二区在线 | 亚洲一区二区不卡在线观看 | 中国一级特黄视频 | 粉嫩国产精品一区二区在线观看 | 久草网免费 | 成人性生交大片 | 精品视频99| 天天操伊人 | 在线中文字幕亚洲 | 亚洲一区二区三区在线视频 | 久久午夜视频 | 日韩成人 | 亚洲视频在线观看 | 亚洲av毛片 | 成人毛片在线观看 | 91免费观看 | 在线成人一区 | 中文字幕一区二区三区在线观看 | 成人av电影在线观看 | 天天爱av| 欧美一区二区在线观看 | 国产二区视频 | www一级片 | 人人人人干 | 中文字幕第100页 | 久久久久国产精品一区二区 | 黄色毛片在线播放 | 精品日韩一区二区三区 |