Spring與WebLogic Portal的基本交互
BEA WebLogic Portal 8.1為創建門戶界面提供了一個靈活且功能強大的框架。Spring Framework是一個全棧(full-stack,意指集成了全部所需功能)的 Java /Java EE應用程序框架,其特性包括控制反轉(IoC)容器、簡化的POJO 開發 和AOP功能。本教程的目的在于演
BEA WebLogic Portal 8.1為創建門戶界面提供了一個靈活且功能強大的框架。Spring Framework是一個全棧(full-stack,意指集成了全部所需功能)的
Java/Java EE應用程序框架,其特性包括控制反轉(IoC)容器、簡化的POJO
開發和AOP功能。本教程的目的在于演示如何在WebLogic Portal應用程序中利用基本的Spring功能。一個
用例的重點是頁面流和Spring,而另一個用例的重點則是支持(backing)文件和Spring。在每一個用例中,我們說明了如何使用同樣的Portal/portlet代碼與不同的實現對象交互,而這些實現對象都是使用Spring框架進行訪問的。
簡介
BEA WebLogic Portal提供企業門戶基礎架構,用于簡化門戶開發。這包括一個用于開發門戶的圖形環境,以及基于瀏覽器的組裝工具。本文中使用的版本是BEA WebLogic Portal 8.1 with Service Pack 6。
Spring Framework鼓勵使用分層的架構,通過其控制反轉容器,這種架構可以集中配置和控制應用程序對象。Spring提供多種抽象層和集成,但是這個例子只演示了Spring的核心功能。本文中使用的版本是Spring Framework 1.2.8。要了解對Spring的基本介紹,請參見Better J2EEing with Spring(Dev2Dev, 2005年7月)一文。
本文中考慮了兩個用例,它們均專注于Spring提供的核心功能。一個例子演示了如何在WebLogic Portal頁面流中使用Spring功能,另一個例子則演示了如何在WebLogic Portal 支持文件中使用Spring功能。
本文逐個考察了上述兩個用例,并描述了如何實現它們。
演示應用程序的架構
本文附帶了一個演示應用程序,它由一個使用BEA WebLogic Workshop創建的單頁面門戶組成。它是一個基于文件的門戶,有4個portlet,排成2列,構成了一個簡單的矩陣,如圖1所示?! ?BR>
圖 1. 帶有兩類portlet的portle矩陣,以兩種不同方式對這兩類portlet進行聲明性配置。
其中兩個portlet是頁面流portlet的實例,而其他兩個portlet則是使用Java 支持文件的實例。每個portlet都有自己的BeanName portlet參數。這個參數的值就是Spring bean的名稱,這個名稱定義在Spring配置文件applicationContext.xml中。我們把其中一個Spring bean實現為簡單的Java類,其功能是使用Hashtable保存和檢索員工記錄,而在一個Java類中實現了其他的Spring bean, 這個類的功能是使用JDBC訪問安裝的默認
數據庫,從而保存和檢索員工記錄。
這4個portlet實例組成了一個簡單的矩陣。一個頁面流使用Hashtable bean,而另一個頁面流則使用JDBC bean。類似地,一個支持文件portlet使用Hashtable bean,而另一個支持文件使用JDBC bean。兩個頁面流portlet都是同一個portlet實現的實例。惟一的區別在于portlet參數的值是Hashtable還是JDBC bean。類似地,兩個支持文件portlet中也使用了相同的代碼。
下面的例子使用了相同的Spring應用程序上下文,而這個上下文是使用web.xml中的一個Spring ContextLoaderListener項創建的。使用這一項,Spring就會使當前的應用程序上下文成為單獨可用的上下文。web.xml文件位于應用程序的WEB-INF目錄中,而且需要另外的偵聽器來初始化上下文。
這就是web.xml中那個另外的偵聽器:
org.springframework.web.context.ContextLoaderListener
默認情況下,Spring會查找一個位于相同WEB-INF目錄下名為applicationContext.xml的應用程序上下文配置文件。對于此演示應用程序,文件定義了兩個員工服務bean,其中分別包含對兩個員工bean的引用。這兩個員工服務的定義是一樣的,除了員工服務類名之外。一個bean引用了EmployeeServiceHashtable類,而另一個bean引用了EmployeeServiceJDBC類。這兩個類均實現了EmployeeService接口。
原文轉自:http://www.anti-gravitydesign.com