前言: JSF+EJB+JPA 其實我並無想象中的難,只是想作好,創建在正確的地方應用,真正的困難. 良好的技術,在錯誤的地方作應用,這是惟一可以被垃圾. 用. 重量級企業應用可以使用這個主要的3層結構的實現,來添加不少其它的企業級應用.而這些基本上不怎麼需要改動,可以說是可以獨立開來維護的部分.至於耦合性,關鍵看怎樣創建應用了,這個又和項目開始的分析和設計密切相關. 目的: 創建JSF,EJB,JPA 之間的鏈接以達成基礎結構建設 功能: JSF: 表述層應用. 用來輸出處理結果和與用戶交互界面. 業務層邏輯可以用JSF的manage bean 和EJB 的 session bean 來一塊兒承擔. EJB: 邏輯層應用. 主要處理業務邏輯和系統邏輯. JPA: 持久層應用. 在邏輯層和數據層之間做爲數據緩衝的存在.以提升對數據存取和操做的效率和穩定. 表述層->邏輯層->持久層->數據層 所需文件: JSF: 頁面文件(jsp),管理bean,face定義文件(可以與頁面導航合用) JEB: 以entity bean(實體bean)爲基礎的 session bean(會話bean).系統邏輯單元.另外包括各類本身定義exception JPA: entity bean,數據庫映射,持久層定義文件. 樣例: 用戶輸入username 和 password 來進行驗證. JSF: 頁面 login.jsp. LoginBean.java(做爲controller的做用).faces-config.xml EJB: Login.java(session bean),LoginRemote.java,UserFacade.java,UserFacadeLocal.java,LoginException.java JPA: User.java(entity bean), xxx.dbschema,persistence.xml 以上10檔,該結構完成設立基地. 固然,根據須要對這樣的結構能夠有不少其餘的擴展,爲了實現該事務分類的目的. 這種結構可以JCA,JAAS,JCE,JMS,Web Service其餘應用程序和其餘企業級組合,申請建設項目.