freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

j2ee項目實訓(xùn)spring框架技術(shù)——第1章應(yīng)用層spring框架技術(shù)及系統(tǒng)架構(gòu)第1部分-資料下載頁

2024-11-17 23:06本頁面

【導(dǎo)讀】Spring框架技術(shù)實際上是RodJohnson在《ExpertOne-on-OneJ2EEDesignand. Development》一書中所闡述的設(shè)計思想的具體實現(xiàn)。Spring框架為J2EE平臺的開發(fā)者提。依賴關(guān)系建立、對象的緩存實現(xiàn)等方面的管理技術(shù)。統(tǒng)中業(yè)務(wù)邏輯組件和通用的技術(shù)服務(wù)組件。應(yīng)用系統(tǒng)的開發(fā)者在應(yīng)用系統(tǒng)中應(yīng)用Spring框。架后能夠達到“解耦”和“脫離容器”的設(shè)計和實現(xiàn)的效果。Spring框架技術(shù)起源于Spring框架的主設(shè)計者RodJohnson的《ExpertOne-on-One. 設(shè)計開發(fā)編程指南》,參見圖中某圖書網(wǎng)站對該書的簡要介紹。展成為一個更加開放、清晰、全面、高效的J2EE平臺中的應(yīng)用層的開發(fā)框架。和重復(fù)的編程中解脫出來,正是Spring框架的價值所在??梢允褂闷渌牡谌降目蚣芊桨柑娲渲械哪硞€子框架。因為Spring框架采用的是分層。了整個行業(yè)和眾多上下游廠商、開發(fā)者的廣泛認可。致應(yīng)用系統(tǒng)的開發(fā)成本比較高、系統(tǒng)的開發(fā)周期比較長。不滿意的呼聲也漸漸出現(xiàn)。手和迅速進入開發(fā)狀態(tài)。不意味著拒絕J2EE平臺中一些良好的解決方案和優(yōu)秀的設(shè)計思想。在Spring框架技術(shù)中又是如何實現(xiàn)類似EJB組件的主要技術(shù)特性呢?

  

【正文】 8/22 頁 package 。 public class DAOBeanFactory { public static DAOInterface creatorDAOBean(int requestDAOType){ if (requestDAOType ==1){ return new OracleDAOInterfaceImple()。 } else if (requestDAOType ==2){ return new MySQLDAOInterfaceImple()。 } } } 在 工廠模式中 的 工廠類通常 是 根據(jù) 客戶請求時的 參數(shù) (該 參數(shù) 代表所需要的不同產(chǎn)品對象的實例) 來判斷 應(yīng)該 實例化哪個 產(chǎn)品的 實現(xiàn)類 的對象實例,然后再返回該對象實例。 ( 4) 請求者(客戶端)類 下面的 【例 111】 中所示的 代表基于工廠模式的 請求者 ,也就是 客戶端 程序 類 , 該類向工廠類發(fā)出需要某種形式的產(chǎn)品對象的請求,由工廠類返回某個特定的產(chǎn)品對象實例給客戶程序。希望仍然注意其中的黑體部分的代碼。 【例 111】 調(diào)用類 (本示例為業(yè)務(wù)層組件類) 的 代碼示例 package 。 import .*。 public class UserManagerImple implements UserManagerInterface{ DAOInterface daoOperatorDBBean=null。 public UserManagerImple() { } public boolean doUserLogin(UserInfoVO oneUserInfo) { //可以將下面的類型“ 1”放到配置文件中,從而更加靈活 daoOperatorDBBean=(1)。 String userName=()。 String userPassWord=()。 boolean okOrNot=false。 楊教授工作室 精心創(chuàng)作的優(yōu)秀程序員 職業(yè)提升必讀系列資料 楊教授工作室,版權(quán)所有,盜版必究 , 19/22 頁 UserInfoVO returnOneUserInfo= (userName, userPassWord)。 if(returnOneUserInfo==null) { okOrNot = false。 } else { okOrNot = true。 } return okOrNot。 } } 通過工廠模式,最終達到在 請求者(客戶端)類 的 方法中實例化 某個具體的產(chǎn)品 實現(xiàn)類的 對象 —— 本示例也就是在業(yè)務(wù)層中獲得所需要的某個具體的 DAO 組件類的對象實例 ,這樣對于調(diào)用類來說,不直接實例化 該 實現(xiàn)類 而是由工廠類來創(chuàng)建產(chǎn)品對象 (工廠模式中工廠類通常根據(jù)參數(shù)來判斷該實例化哪個實現(xiàn)類) 。 縱然 產(chǎn)品的某個 實現(xiàn)類發(fā)生變化,而調(diào)用 者的 代碼仍然可以不作修改,給維護與擴展帶來便利 。 應(yīng)用 系統(tǒng)中的 其它 組件需要獲取 產(chǎn)品 這個接口的實現(xiàn) 類的對象實例 ,而無需事先獲知其具體的實 現(xiàn) 類的編程實現(xiàn)的細節(jié) 。 從而也能夠達到 隔離對象的創(chuàng)建者和對象的使用者的效果。 用 Spring 框架中的控制反轉(zhuǎn) IoC 技術(shù)實現(xiàn)的示例 ( 1)定義出 Spring 框架中的 IoC 的 XML配置文件 在 Spring 框架中 ,是通過將各個對象的實例的創(chuàng)建要求在其 XML 配置文件中加以定義,而最終由 Spring 框架中 的 IoC 容器來幫助應(yīng)用系統(tǒng)創(chuàng)建出所需要的各個目標對象。 基于此,將本示例中所需要的各個對象實例加以定義出,請見下面的 【例 112】 中所示的配置文件的內(nèi)容。 【例 112】 Spring 框架中的 IoC 的 XML配置文件 的示例 ?xml version= encoding=UTF8? !DOCTYPE beans PUBLIC //SPRING//DTD BEAN 楊教授工作室 精心創(chuàng)作的優(yōu)秀程序員 職業(yè)提升必讀系列資料 楊教授工作室,版權(quán)所有,盜版必究 , 20/22 頁 beans bean id=oracleDAOInterfaceImple class=. OracleDAOInterfaceImple /bean bean id=mySQLDAOInterfaceImple class=. MySQLDAOInterfaceImple /bean bean id=userManagerImple class=. UserManagerImple property name=daoOperatorDBBean ref bean=mySQLDAOInterfaceImple/ /property /bean /beans 在該配置文件中將各個 DAO 組件對象以常規(guī)的方式加以定義,然后 以屬性注入的方式注入到業(yè)務(wù)層組件對象中。 當如果需要不同的 DAO 組件對象時,只需要改變配置文件中實際所引用的目標 DAO 組件對象的實例。 ( 2) 請求者(客戶端)類 下面的 【例 113】 中所示的 代表基于 Spring IoC 容器技術(shù)實現(xiàn)的 請求者 也就是 客戶 端 程序 類 (本示例代表某個系統(tǒng)的業(yè)務(wù)層組件類) , 該類以屬性注入的方式獲得由 IoC 容器所提供的某個產(chǎn)品類的對象實例。并請注意其中的黑體部分的代碼。 【例 113】 調(diào)用類 (本示例代表某個系統(tǒng)的業(yè)務(wù)層組件類) 的 代碼示例 package 。 import .*。 public class UserManagerImple implements UserManagerInterface { DAOInterface daoOperatorDBBean=null。 public void setDaoOperatorDBBean (DAOInterface newDaoOperatorDBBean) { daoOperatorDBBean= newDaoOperatorDBBean。 } 楊教授工作室 精心創(chuàng)作的優(yōu)秀程序員 職業(yè)提升必讀系列資料 楊教授工作室,版權(quán)所有,盜版必究 , 21/22 頁 public UserManagerImple() { } public boolean doUserLogin(UserInfoVO oneUserInfo) { String userName=()。 String userPassWord=()。 boolean okOrNot=false。 UserInfoVO returnOneUserInfo= (userName, userPassWord)。 if(returnOneUserInfo==null) { okOrNot = false。 } else { okOrNot = true。 } return okOrNot。 } } 在客戶端的代碼 中, 此時 開發(fā)者 不需要再關(guān)心所依賴的目標對象的創(chuàng)建 的實現(xiàn)過程的細節(jié) 工作,而目標對象的創(chuàng)建是由 Spring 框架中 IoC 容器來完成的;并且在客戶端的代碼中也沒有直接出現(xiàn)產(chǎn)品的實現(xiàn)類的名稱,從而也能夠達到工廠模式 中 的相互隔離的效果。 Spring 框架中 IoC 和工廠模式在實現(xiàn)方面的主要差別 ( 1) 采用 Spring 框架中 控制反轉(zhuǎn) IoC 技術(shù) 能夠更簡潔地實現(xiàn)工廠模式相同的效果 對比在客戶端 類 的調(diào)用代碼,其中同 樣也沒有硬編碼地出現(xiàn)產(chǎn)品的各個實現(xiàn)類,但比較工廠模式,在代碼 編程實現(xiàn) 方面首先 減少了 編程實現(xiàn) 其中的 “ Factory 類” 、 而且采用配置文件來決定采用 哪 個產(chǎn)品的實現(xiàn)類,提高了改變所選擇的 目標 產(chǎn)品實現(xiàn)類的靈活性。 因此,使用 Spring 框架中 IOC 能得到工廠模式同樣的效果,而且編碼更加簡潔、靈活方便。 Spring 框架會對 IoC 的 XML 配置文件中的各個配置項目進行解析, 然后利用 Java的“反射” 技術(shù) ,根據(jù) 在 XML 配置文件 中給出的類名生成相應(yīng)的 名稱的類 對象 實例 。 楊教授工作室 精心創(chuàng)作的優(yōu)秀程序員 職業(yè)提升必讀系列資料 楊教授工作室,版權(quán)所有,盜版必究 , 22/22 頁 ( 2)采用工廠模式來實現(xiàn)時還將會有如下三個 方面 的缺點 ? 除 非重新編譯,否則無法對“產(chǎn)品的實現(xiàn)類”進行替換。 必須重新編譯工廠類來達到所要求的改變,但這樣將使得原本可以達成的易用性將大大地降低。在 Spring 框架技術(shù)誕生之前,在許多應(yīng)用項目中,一般是通過引入可配置化的工廠類來達到此目的。盡管這解決了不同的產(chǎn)品類的對象實例化的問題,但是它為應(yīng)用 系統(tǒng) 項目的開發(fā)帶來了許多額外的 維護方面的 負擔。 ? 無法透明地為不同的產(chǎn)品組件類提供多 種 不同形式的實現(xiàn) 這是開發(fā)者在應(yīng)用工廠模式時一個比較頭疼的問題,因為工廠模式中的工廠類要求每個產(chǎn)品組件類都必須遵從在產(chǎn)品 接口 中定義的方法和結(jié)構(gòu)特征 。一個接口常常意味著一個生成工廠,當接口為多個時,將會出現(xiàn)許多 不同的 工廠類。 當然開發(fā)者也可以在代碼的實現(xiàn)形式上為工廠類中的 creatorProduct 方法增加一個參數(shù) ,通過該參數(shù)達到對接口實現(xiàn)的不同版本進行索引。但這種實現(xiàn)方式將會增加編程的復(fù)雜性。 ? 無法在單例和原形之間切換產(chǎn)品對象實例產(chǎn)生的模式 在 【例 110】 中所給出的示例代碼 是實現(xiàn)返回某個產(chǎn)品實現(xiàn)類的多個實例的 功能 ,如果應(yīng)用系統(tǒng)中需要產(chǎn)生出產(chǎn)品類的一個單例( Singleton) 形式 的 對象 實例,此時開發(fā)者必須重新修改并編譯工廠模式中的工廠類的程序代碼 。
點擊復(fù)制文檔內(nèi)容
教學課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1