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

基于OSGi的動(dòng)態(tài)化系統(tǒng)搭建

開(kāi)發(fā) 后端
本文向您介紹基于OSGi的動(dòng)態(tài)化系統(tǒng)的搭建,對(duì)動(dòng)態(tài)化系統(tǒng)的優(yōu)點(diǎn)和基于OSGi的搭建做簡(jiǎn)單的演示。

搭建動(dòng)態(tài)化的系統(tǒng)是作為Java開(kāi)發(fā)人員一直就非常追求的目標(biāo),一個(gè)系統(tǒng)能夠動(dòng)態(tài)化就意味著:

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

◆ 添加新功能時(shí)不需要重啟系統(tǒng);

◆ 修改已存在的功能時(shí)不需要重啟系統(tǒng);

◆ 刪除一些不需要的功能時(shí)不需要重啟系統(tǒng);

◆ 修改系統(tǒng)中的配置時(shí)可以不需要重啟系統(tǒng)即刻生效;

◆ 系統(tǒng)的業(yè)務(wù)行為可動(dòng)態(tài)的改變。

也許習(xí)慣了傳統(tǒng)Java開(kāi)發(fā)方式的人而言,沒(méi)有這些動(dòng)態(tài)化也沒(méi)什么,但不可否認(rèn),這些動(dòng)態(tài)化的特征還是非常吸引人的,尤其是如果能很容易就獲得這些好處,那么自然就不會(huì)錯(cuò)過(guò)這些好處了,基于OSGi可以很容易的讓我們獲取到這些好處,對(duì)于上面所描述的系統(tǒng)的動(dòng)態(tài)化的特征可以歸納為這么三點(diǎn):

◆ 模塊的動(dòng)態(tài)化:新增、修改、刪除以及擴(kuò)展;

◆ 配置的動(dòng)態(tài)化;

◆ 行為的動(dòng)態(tài)化。

下面就來(lái)看看基于OSGi是怎么樣來(lái)構(gòu)成這樣的動(dòng)態(tài)化的系統(tǒng)的。

◆ 模塊的動(dòng)態(tài)化:新增、修改、刪除以及擴(kuò)展;

     ● 新增

          對(duì)于模塊的新增,在OSGi可以通過(guò)在控制臺(tái)中使用install命令去安裝,或者調(diào)用BundleContext的installBundle方法去安裝新的模塊;

     ● 修改

          當(dāng)修改了模塊后,只需在控制臺(tái)中使用update命令去更新模塊,或者通過(guò)調(diào)用BundleContext.getBundle(Bundle的id).update();

     ● 刪除

          當(dāng)需要?jiǎng)h除不需要了的模塊時(shí),只需在控制臺(tái)中使用uninstall命令去刪除,或者通過(guò)調(diào)用BundleContext.getBundle(Bundle的id).uninstall();

     ● 擴(kuò)展

          對(duì)于模塊的擴(kuò)展,可以使用OSGi所支持的調(diào)用多服務(wù)的方式或者使用Equinox提供的擴(kuò)展點(diǎn)的方式來(lái)實(shí)現(xiàn)。

◆ 配置的動(dòng)態(tài)化

     對(duì)于配置的動(dòng)態(tài)化方面,使用OSGi的Configuration Admin Service(簡(jiǎn)稱(chēng)CM)可以很容易的實(shí)現(xiàn),使用CM使得系統(tǒng)中的配置可以采用統(tǒng)一的形式去管理、動(dòng)態(tài)的通知變化以及使用。

◆ 行為的動(dòng)態(tài)化

系統(tǒng)在運(yùn)行中要根據(jù)業(yè)務(wù)的需求選擇相應(yīng)的服務(wù)是經(jīng)常會(huì)碰到的需求,例如一份文件在某種情況下可能需要進(jìn)行存儲(chǔ),而在另一種情況下可能是需要進(jìn)行提取信息并存儲(chǔ)為其他文件,由于OSGi支持服務(wù)選擇時(shí)的過(guò)濾(如context.getAllServiceReferences(服務(wù)接口完整類(lèi)名,"(key=db)")),使得系統(tǒng)可以在運(yùn)行時(shí)根據(jù)需求來(lái)選擇或配置使用相應(yīng)的服務(wù),而OSGi同時(shí)又支持了服務(wù)的動(dòng)態(tài)化的管理,當(dāng)服務(wù)可用時(shí)會(huì)自動(dòng)的通知,當(dāng)其不可用時(shí)同樣會(huì)自動(dòng)的通知,這就保證了開(kāi)發(fā)人員在使用服務(wù)時(shí)可做出相應(yīng)的處理。

如果覺(jué)得你所設(shè)計(jì)的系統(tǒng)需要這些動(dòng)態(tài)化的特征的話(huà),那么建議使用下OSGi(推薦的OSGi框架:Equinox)試試,或者可以參考下OSGi的實(shí)現(xiàn)方法自己去實(shí)現(xiàn)所需要的動(dòng)態(tài)化的特征。

 

【編輯推薦】

  1. OSGi和Java企業(yè)級(jí)開(kāi)發(fā)的未來(lái)方向
  2. OSGi和SCA間的關(guān)系淺析
  3. Equinox的OSGi實(shí)現(xiàn)與應(yīng)用服務(wù)器
  4. OSGi在ServiceMix4中的應(yīng)用
  5. OSGi為什么重要:向模塊化轉(zhuǎn)移的主攻手
責(zé)任編輯:佚名 來(lái)源: JavaEye
相關(guān)推薦

2009-09-16 16:35:08

OSGi是什么OSGi容器

2009-03-03 10:06:00

IBMJavaOSGi

2012-06-14 10:14:46

ibmdw

2009-06-11 09:20:15

GlassFish是什OSGi

2012-05-24 09:18:34

ibmdw

2010-03-24 08:34:44

OSGiJava模塊化

2009-09-28 13:32:39

OSGi入門(mén)

2009-06-01 11:20:21

OSGi服務(wù)規(guī)范非贏利機(jī)構(gòu)

2009-06-18 15:24:08

Spring OSGi

2010-04-07 08:55:00

OSGiSpring

2009-09-27 09:29:56

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

2009-06-01 10:28:03

SpringOSGi整合

2009-06-01 11:12:34

OSGi規(guī)范架構(gòu)體系結(jié)構(gòu)

2012-12-26 15:14:49

光纖布拉格光柵

2012-06-25 11:47:14

ibmdw

2017-08-07 16:39:03

JSX動(dòng)態(tài)數(shù)據(jù)

2009-05-07 13:22:01

OSGi面向?qū)ο?/a>模塊化

2009-06-01 11:09:16

OSGI實(shí)戰(zhàn)進(jìn)階

2009-06-25 15:33:48

OSGi方式

2018-06-20 14:34:03

點(diǎn)贊
收藏

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