亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

擴展 Spring 的 JMX 支持

2019-11-18 13:46:36
字體:
來源:轉載
供稿:網友

  SPRing 框架將體系結構依靠性降至最低,并且將應用程序中得組成部分進行了具體化,但是應用程序仍然是需要治理的。幸運的是,Spring 1.2 包括高級的 JMX 集成支持,并且 JMX 為應用程序提供了一種實用的治理基礎架構。在本文中,Claude Duguay 從 Spring JMX 更進一步,向您展示了如何為方法和屬性透明地增加通知事件。最后得到的代碼使您可以監視狀態變化,同時不會搞亂 java? 對象。

  雖然 Spring 框架的 JMX 治理基礎架構的默認配置已經很不錯了,但是仍然有定制的余地,非凡是涉及 Model MBean 提供的更高層功能時。在本文中,我使用了一種相對簡單的操作 —— 為基于 Spring 的應用程序的方法和屬性增加通知事件 —— 以幫助您熟悉對 Spring JMX 的定制。從頭到尾完成我的例子后,您將可以根據自己應用程序的需要調整 Spring JMX 治理基礎架構。

  我首先對 JMX API、Spring 框架和 Spring JMX 進行簡單回顧,然后轉入開發擴展。第一個擴展讓我可以用一個外部 xml 格式配置 MBean 元數據,這個格式(像 Hibernate 映射文件)可以與 Java 對象一起存儲在類路徑中。我的第二個擴展為 ModelMBean 類增加一個簡單的命名規范,以透明地配置定制的通知消息。在屬性改變時或者調用了特定的方法之前或者之后觸發新的通知消息。

  文章的最后是一個基于 mockup 服務對象的實際例子,需要治理它的啟動和停止方法和讀寫屬性。我用一個專門為此設計的小型客戶機/服務器應用程序測試了這個實現。應用服務器是一個標準 Java 5.0 MBeanServer,并補充了源自 MX4J 開放源碼項目的 HTTP 適配器。

  JMX 概述

  Java Management Extensions(JMX)是治理和監視網絡上的服務的、基于 Java 的標準。JMX API 的核心是受管 bean,即 MBean。MBean 為受管資源(如應用程序、服務和設備)提供了設施層。簡而言之,MBean 提供了一種靈活的、基于適配器的體系結構,用于開放基于 Java 的(或者 Java 包裝的)資源的屬性和操作。開放后,就可以用瀏覽器和 HTTP 連接或者通過像 SMTP 或者 SOAP 這樣的協議監視和治理這些資源。

  編寫和部署的 MBean 是通過 MBeanServer 接口開放的,以使不同的應用程序視圖具有交互性。MBeanServer 實例還可以結合到任意的聯合關系中,構成更復雜的分布式環境。

  JMX 標準提供了四種不同的 MBean:
  • Standard MBean 直接實現用于治理對象的方法,既可以通過實現一個由程序員定義的、類名以 “MBean” 結束的接口,也可以使用一個以一個類作為構造函數參數的 Standard MBean 實例,加上一個可選的接口類規范。這個接口可以開放用于治理的部分對象方法。

  • Dynamic MBean 用屬性訪問器動態地訪問屬性,并用一個一般化的 invoke() 方法調用方法??捎玫姆椒ㄊ窃?MBeanInfo 接口中指定的。這種方式更靈活,但是不具有像 Standard MBean 那樣的類型安全性。它極大地降低了耦合性,可治理的 POJO(純粹的老式 Java 對象)不需要實現特定的接口。

  • Model MBean 提供了一個改進的抽象層,并擴展了 Dynamic MBean 模型以進一步減少對給定實現的依靠性。這對于可能使用多個版本的 JVM 或者需要用松散耦合治理第三方類的情況會有幫助。Dynamic MBean 與 Model MBean 之間的主要區別是,在 Model MBean 中有額外的元數據。

  • Open MBean 是受限的 Model MBean,它限制類型為固定的一組類型,以得到最大的可移植性。通過限制數據類型,可以使用更多的適配器,并且像 SMTP 這樣的技術可以更輕易適應 Java 應用程序的治理。這種變體還指定了數組和表等標準結構以改進復合對象的治理。

  假如要同時控制客戶機和服務器,那么 Standard MBean 是最輕易實現的一種變體。它們的優點是有類型,但是假如在更一般化的治理控制臺環境中使用時會缺少一些靈活性。假如計劃使用 Dynamic MBean,那么您也可以更一步使用 Model MBean,在大多數情況下它會改善抽象層而幾乎不會增加復雜性。Open MBean 是是可移植性最高的一種變體,假如需要開放復合對象,那么它是惟一的方法。不幸的是,在 Open MBean 中開放復合結構所需要的代碼數量過多,只有在需要高級的商業治理解決方案時才合算。

  JMX 還支持使用帶過濾器和廣播器的事件模型的通知。為此目的,Standard MBean 需要聲明一個 MBeanInfo 元數據描述。 Standard MBean 實現通常在內部構造這些內容,開發人員不能直接看到它們。在本文后面,您會看到如何用 Model MBean 元數據的 XML 描述符格式和 Spring 的 JMX 支持進行實際上透明的配置。

  Spring 提供幫助

  像 J2EE 一樣,Spring 框架在一個體系結構中提供了許多強大的 Java 開發功能。與 J2EE 不同的是,Spring 開放型的技術來源提供了范圍廣泛的選擇,不再有依靠性的負擔。例如,Spring 的對象關系映射工具可以復制 Enterprise JavaBean 的行為,同時不會導致不靈活。雖然 EJB 規范限制了這種方式,但是 Spring 提供了大量技術接口,使您可以選擇最適合應用程序要求的接口,或者在需要時創建自己的接口。與此類似,利用 Spring 的動態代理類為 Java 對象增加事務性或者安全限制,使它們保持整潔并針對應用程序空間而不是基礎架構要求。

  Spring 的支持 AOP 的、以復合為中心的(IOC)bean 可以很大程度上使基礎架構和業務對象彼此分離。因此,橫切關注點(如日志、事務和安全)不會再干擾應用程序代碼。

  IOC(控制反轉)是減少耦合度的主要策略。Spring 的 IOC 實現使用依靠性注入有效地將控制從應用程序代碼 “反轉”到 Spring 容器。Spring 不是在創建時將類耦合到應用程序的對象圖,它使您可以用 XML 或者屬性文件(盡管 XML 被認為是最好的方法)配置類及它們的依靠性。然后用標準訪問器將引用“注入”到類所依靠的對象中??梢詫⑺闯删唧w化復合(externalizing composition),在典型應用程序中,它的比重遠遠大于繼續。

  AOP 是在應用程序開發中治理橫切關注點的要害。就像在傳統面向對象編程中實現的那樣,這些關注點是作為單獨的實例處理的,有可能在應用程序類中產生互不相關的代碼(就是混亂)。 Spring 使用 AOP 規范和一個 XML 配置文件具體化橫切關注點,因而保持了 Java 代碼的純潔性。

  介紹 Spring JMX

  Spring 1.2 中的 JMX 支持使用輕易配置的 bean 代理提供了自動 MBeanServer 注冊,并支持標準 JSR-160 遠程連接器。在最簡單的情況下,可以用 Spring JMX 以 MBeanEXPorter 類注冊對象。Spring 自動識別 StandardMBean 或者用 ModelMBean 代理包裝對象,在默認情況下使用內省??梢砸燥@式引用使用 BeanExporter 以聲明 bean,或者可以用默認策略或更復雜的策略自動檢測 bean。

  Spring 1.2 提供的大量裝配器使得透明地構造 MBean 成為可能,包括使用內省、Standard MBean 接口、元數據(使用類級別注釋)和顯式聲明的方法名。Spring 的基于導出器和裝配器的模型輕易擴展,并在創建注冊的 MBean 時提供所需要的控制能力。

  JMX 使用 ObjectName 語言注冊和訪問治理對象。假如選擇使用自動注冊,那么 Spring 提供了不同的命名策略。使用“鍵”命名策略時,可以使用一個屬性把 MBean 名與 NameObject 實例關聯起來。假如實現 ManagedResource 接口,那么可以使用元數據命名規范。由于 Spring 高度靈活的體系結構和大量擴展點,還可以實現自已的策略。

  在默認情況下,Spring 會發現運行的 MBeanServer 實例,假如沒有實例在運行或者沒有顯式聲明的話,它會創建一個默認實例。用 Spring 配置直接實例化自己的 MBeanServer 與使用各種連接器同樣輕易。Spring 通過客戶機和服務器連接提供控制,并提供客戶機代理以協助客戶端編程。

  所有這些功能都是 Spring 1.2 默認提供的。雖然 Spring JMX 提供了大量選項,但是默認的導出器對于許多項目來說已經足夠了,使您可以很快地投入運行。不過,使用 JMX 時,在使用隱式 MBean 構造時會注重到一些特性。結果,可能會慢慢地從 Standard MBean 轉移到 Model MBean,它答應對應用程序的屬性、操作和通知元數據施加更多的控制。要保留松散耦合的好處(也就是 Spring 靈活的體系結構內在的優點),需要在 Java 對象之外實現這個控制。

  Spring 的 IOC 使得從外部連接(wire)對象依靠性輕易了,在 Spring 的體系結構中很輕易利用這種優點。IOC 保持對象依靠性的可注入性,這使得增加、替換或者補充對象的行為(包括 Spring 的 JMX 支持)變得輕而易舉。在本文的其余部分,我將重點放到擴展 Spring JMX 以得到更細化的應用程序治理,而不會搞亂應用程序代碼或者破壞 Spring 固有的靈活性。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
丝袜亚洲另类欧美重口| 国产精选久久久久久| 日韩免费在线播放| 中文字幕综合一区| xvideos亚洲| 91在线无精精品一区二区| 久久亚洲精品一区二区| 欧美激情精品久久久久久| 国内成人精品视频| 久久影院资源站| 疯狂做受xxxx高潮欧美日本| 国语自产精品视频在线看一大j8| 伊是香蕉大人久久| 欧美在线播放视频| 中文字幕欧美日韩| 国产午夜精品免费一区二区三区| 日本韩国在线不卡| 中文字幕成人在线| 亚洲精品国产精品国自产观看浪潮| 久久久久久av| 国产精品大陆在线观看| 成人国内精品久久久久一区| 搡老女人一区二区三区视频tv| 福利一区视频在线观看| 国产精品亚洲网站| 一区二区亚洲精品国产| 欧美丝袜美女中出在线| 国产日韩欧美中文在线播放| 久热在线中文字幕色999舞| 日韩精品有码在线观看| 欧美成人国产va精品日本一级| 亚洲欧美日本精品| 亚洲午夜av电影| 久久综合国产精品台湾中文娱乐网| 色噜噜亚洲精品中文字幕| 美女扒开尿口让男人操亚洲视频网站| 国产精品99久久久久久人| 国产福利精品av综合导导航| 亚洲美女av黄| 成人免费淫片aa视频免费| 色综合久久悠悠| 日韩高清电影免费观看完整| 亚洲片在线资源| 亚洲综合一区二区不卡| 日韩在线国产精品| 欧美日产国产成人免费图片| 粉嫩老牛aⅴ一区二区三区| 亚洲一二三在线| 日韩av大片在线| zzijzzij亚洲日本成熟少妇| 亚洲free性xxxx护士白浆| 欧美裸体xxxx| 中文字幕在线观看亚洲| 日韩视频一区在线| 国产日韩在线视频| 日韩在线视频观看正片免费网站| 日韩中文av在线| 最新的欧美黄色| 91久久精品久久国产性色也91| 97精品国产aⅴ7777| 欧美特黄级在线| 中文字幕日韩av综合精品| 77777少妇光屁股久久一区| 91精品国产91久久久久福利| 国产精品极品在线| 亚洲xxx视频| 日韩在线免费高清视频| 精品视频—区二区三区免费| 欧美激情网站在线观看| 久久影视免费观看| 成人黄色大片在线免费观看| 国产一区二区三区网站| 欧美日韩国产综合新一区| 日韩免费av在线| 亚洲综合成人婷婷小说| 91综合免费在线| 国产精品1234| 亚洲欧美日韩区| 色中色综合影院手机版在线观看| 欧美精品生活片| 国产亚洲aⅴaaaaaa毛片| 福利一区福利二区微拍刺激| 欧美久久精品一级黑人c片| 精品国产鲁一鲁一区二区张丽| 国产美女被下药99| 欧美理论电影在线观看| 北条麻妃一区二区在线观看| 欧美精品videossex88| 岛国精品视频在线播放| 日韩av毛片网| 亚洲欧美国产精品专区久久| 日韩欧美福利视频| 欧美高清视频一区二区| 91精品久久久久久久久久另类| 国产精品偷伦一区二区| 日本免费久久高清视频| 日韩资源在线观看| 91精品在线播放| 欧美精品videossex性护士| 26uuu国产精品视频| 欧美精品久久久久久久久久| 久久躁日日躁aaaaxxxx| 国产精品一区二区三区成人| 欧美一级在线亚洲天堂| 在线播放国产一区中文字幕剧情欧美| 欧美日韩免费区域视频在线观看| 亚洲奶大毛多的老太婆| 欧美中文在线观看| 国产精品一区久久久| 日韩毛片在线看| 中国日韩欧美久久久久久久久| 在线观看亚洲区| 国产精品看片资源| 欧美日韩国产综合新一区| 亚洲第一页在线| 欧美电影免费在线观看| 欧美日韩在线一区| 精品人伦一区二区三区蜜桃网站| 欧美激情一区二区三区在线视频观看| 黑人巨大精品欧美一区免费视频| 最新的欧美黄色| 欧美老女人在线视频| 国产精品亚洲综合天堂夜夜| 国产日本欧美在线观看| 日韩av免费看网站| 亚洲bt欧美bt日本bt| 久久久亚洲影院你懂的| 色婷婷综合成人| 亚洲一区二区三区视频播放| 国产成人中文字幕| 亚洲色图在线观看| 欧美亚洲国产精品| 成人亚洲综合色就1024| 久久免费福利视频| 欧美另类暴力丝袜| 亚洲аv电影天堂网| 亚洲一区二区三区xxx视频| 亚洲成av人片在线观看香蕉| 久久躁日日躁aaaaxxxx| 少妇高潮久久久久久潘金莲| 欧美激情a∨在线视频播放| 久久精品久久久久电影| 成人网欧美在线视频| 国产精品美女久久久免费| 日本精品性网站在线观看| 亚洲国产又黄又爽女人高潮的| 96精品久久久久中文字幕| 欧美理论在线观看| 国产精品久久久久久久久久东京| 国产精品xxx视频| 国产日韩中文在线| 欧美视频在线视频| 亚洲欧美激情另类校园| 欧美激情手机在线视频| 久久精品视频99| 日韩欧美国产激情| 亚洲欧洲成视频免费观看| 亚洲国产精品va在看黑人| 一道本无吗dⅴd在线播放一区| 亚洲999一在线观看www| 中文字幕最新精品| 久久免费国产视频| 57pao成人国产永久免费| 欧美极品少妇xxxxⅹ裸体艺术|