BEA WebLogic Server 9.0是對Sun Microsystems的J2EE 1.4平臺的領(lǐng)先實現(xiàn)。然而,WebLogic Server的核心價值主張則體現(xiàn)在J2EE規(guī)范中沒有的領(lǐng)域――增強的治理、易用性、高可用性、可伸縮性、可靠性和性能。實際上,WebLogic Server的價值并不與任何特定的編程模型關(guān)聯(lián),所以很自然地,它也適用于新出現(xiàn)的非J2EE編程模型。近年來出現(xiàn)的最激動人心的事物莫過于基于反向控制(Inversion of Control,IoC)的模型,而SPRing Framework正是此類模型的領(lǐng)先實現(xiàn)。本文介紹了Spring Framework、WebLogic Server以及二者的集成的一些特性。我們將看到,整體大于部分之和。
在前兩節(jié)中,我們將概覽Spring和WebLogic Server,并介紹它們各自的特性。熟悉Spring Framework的讀者可以跳過第一節(jié)。因為本文的主要目的是介紹兩種技術(shù)的集成,所以本文余下的部分都會集中在這一點上。為了提供一個上下文,我們首先剖析了MedRec――與WebLogic Server一起發(fā)行的一個示例應用程序――首先是以原始的J2EE形式,然后再使用Spring Framework重構(gòu)。此后,我們將圍繞特定的集成點進行具體的闡述。假如您打算在WebLogic Server上開發(fā)Spring應用程序,那么您肯定能從本文中找到對您有所幫助的細節(jié)。假如您只是想進行大概的了解,那么先閱讀標題,以后再了解其具體內(nèi)容。最后,我們展望了一些正在考慮的未來開發(fā)工作。
在本節(jié)中,我們將簡要概括Spring Framework的一些特性。
Spring 是一個分層的java/J2EE應用框架,它基于Rod Johnson所著的《EXPert One-on-One J2EE Design and Development》(Wrox,2002年)一書中所公布的代碼。Spring之所以存在,是因為我們相信,J2EE應該更加易用,而且我們可以使用更簡單的方法進行J2EE開發(fā),同時又不犧牲平臺的性能。
Spring支持靈活的J2EE開發(fā),并答應使用POJO開發(fā)J2EE應用程序。
Spring在其核心部分提供了一個易于配置的、xml驅(qū)動的反向控制(IoC)容器。IoC基于所謂的“好萊塢原則”――不要給我們打電話,我們會找你。在這種方案中,應用程序中Java對象之間的關(guān)系是由容器注入的,而不是通過直接編程實現(xiàn)的。注入分兩種形式――構(gòu)造函數(shù)注入和setter注入,這取決于容器是通過其構(gòu)造函數(shù)還是通過mutator方法把信息注入一個已創(chuàng)建的Java對象。
在Spring中,注入的屬性――或到其他bean的引用――是通過一個XML文件進行配置的,這使得配置變得非常直接。Spring與一個AOP框架耦合在一起,而該框架支持非侵入性地添加諸如事務和安全這樣的屬性,這意味著開發(fā)人員可以集中精力創(chuàng)建用于解決業(yè)務問題的解決方案,而不會為J2EE開發(fā)或配置的復雜性而頭痛。因為該容器是非侵入性的,所以您不必擔心業(yè)務代碼會被特定于供給商(此處也包括Spring)的工件所污染。
正如我們所提到的那樣,Spring提供了一個輕量級的容器,用于提供集中式、自動化的配置和編寫應用程序?qū)ο蟆T撊萜魇欠乔秩胄缘模軌蛞砸环N一致而透明的方式,通過IoC把一組松散耦合的組件(POJO)組裝為一個復雜的系統(tǒng)。因為該容器答應首先獨立地開發(fā)和測試各軟件組件,然后在任意環(huán)境(J2SE或J2EE)中進行擴展部署,所以它具有靈活性和高利用率,并提高了應用程序的可測試性和可伸縮性。此外,Spring還提供了大量其他的對開發(fā)人員友好的特性,如下:
新聞熱點
疑難解答