復(fù)習(xí)大三大三中print ejb_第1頁
復(fù)習(xí)大三大三中print ejb_第2頁
復(fù)習(xí)大三大三中print ejb_第3頁
復(fù)習(xí)大三大三中print ejb_第4頁
復(fù)習(xí)大三大三中print ejb_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、EJBEJBEJB 是用 Java 編程語言開發(fā)的,封裝了應(yīng)用邏輯的服務(wù)器端組件業(yè)務(wù)邏輯滿足了應(yīng)用的需求,在觸發(fā)控制(inventory control)應(yīng)用中,客戶端觸發(fā)一些方法來得到企業(yè)Bean 提供的服務(wù)EJB 使用場景1、應(yīng)用必須是可擴展的,為了迎合各種用戶的需要,應(yīng)用組件有時候必須被部署到各種各樣的機器上。不僅是 EJB,整個應(yīng)用都需要能夠在不同的機器上部署運行2、轉(zhuǎn)換時必須保證數(shù)據(jù)的完整性(data的共享(shared objects)。egrity)。EJB 支持轉(zhuǎn)換,支持并發(fā)的機制需要對象3、應(yīng)用是多客戶端的。只需要幾行代碼,的客戶端可以輕易地定位 EJB。這些客戶端也許是是很

2、多不同的瘦客戶端(thin, various, and numerous).1.的 JavaEE 規(guī)范中,有哪兩種企業(yè) Bean?SesBean:為客戶端執(zhí)行某個任務(wù),也有可能實現(xiàn)一個 Web 服務(wù),封裝業(yè)務(wù)邏輯,可以被本地的或者的客戶端以及網(wǎng)絡(luò)服務(wù)客戶端的頁面(web service c nt views)SesBean 封裝了實現(xiàn)的復(fù)雜度,但 SesBean 不是持久的Message-driven Bean:為一個特定的事件充當(dāng)(如 Java Message Service API)允許 Java EE 異步處理信息,可以處理 JMS 消息或者其他類型的消息消息可以由任何的 Java EE

3、 組件發(fā)送(應(yīng)用客戶端、其他 EJB、Web 組件),或者由 JMS 應(yīng)用以及不使用 Java EE 技術(shù)的系統(tǒng)2.客戶可以以兩種方式獲得對企業(yè) Bean 的1.依賴注入 2.JNDI lookup(企業(yè) Bean),哪兩種?*3.會話 Bean 的三種類型。Seful(狀態(tài) bean);有狀態(tài)的會話 bean 在方法調(diào)用時可保持狀態(tài),譬如客戶的網(wǎng)上購物車。客戶開始網(wǎng)上購物時,可以從數(shù)據(jù)庫中檢索客戶的詳細信息。客戶往購物車里面添加商品或者從里面刪除商品、下訂單等時調(diào)用的其他方法也可以使用這些詳細信息。不過,有狀態(tài)的會話 bean 是暫時性的,因為出現(xiàn)會話終止、系統(tǒng)或者網(wǎng)絡(luò)故障后,狀態(tài)不復(fù)存在。

4、客戶端請求有狀態(tài)的會話 bean 實例時,就為該客戶端分配一個有狀態(tài)的實例,并為該客戶端保持該組件的狀態(tài)。要指定容器在某個方法完成后刪除有狀態(tài)的會話 bean 實例,只要為該方法添加注釋 Remove。s eless(無狀態(tài) bean);無狀態(tài)的會話 bean 沒有狀態(tài)。它們不從一個方法調(diào)用傳遞到另一個方法調(diào)用的信息。因此,每次調(diào)用無狀態(tài)的業(yè)務(wù)方法都獨立于前一次調(diào)用,譬如計算或者運費。用某個應(yīng)稅值調(diào)用計算的方法時,對值進行計算并返回給調(diào)用方法,而不必保存調(diào)用者的狀態(tài)供以后調(diào)用。因為這些 bean 并不保持狀態(tài),所以容器對它們進行管理就很簡單??蛻舳苏埱鬅o狀態(tài)的 bean 實例時,可以從容器保持

5、的無狀態(tài)的會話 bean 實例中接收一個實例。另外,因為無狀態(tài)的會話 bean 可以共享,所以容器可保持數(shù)量較少的實例為許多客戶端提供服務(wù)。想指定 Java Bean 作為無狀態(tài)的會話 bean 加以部署及管理,只需要為該 bean 添加注釋Seless。singleton(單例 bean)5.企業(yè) Bean 包括哪些內(nèi)容?目錄結(jié)構(gòu)是什么?企業(yè) bean 的類業(yè)務(wù)接口Helper 類目錄結(jié)構(gòu)見 EJB.ppt 的第 27 張JDBC1.兩種建立數(shù)據(jù)庫連接的方式?1、DriverManager 機制(JDBC): API:java.sqlAPI DriverManager 機制的弊端:是一個同步

6、的類,一次只有一個線程可以運行與數(shù)據(jù)庫相關(guān)的連接信息都包含在類中,如果用戶更換另一臺計算機作數(shù)據(jù)庫服務(wù)器,就需要重新修改 URL 變量、重新編譯、部署;用戶的用戶名、口令也包含在類中,喪失了安全性2、DataSource 機制(JNDI):API:javax.sql 可擴展 API連接方式:連接池2.事務(wù):哪些種 Java 事務(wù)類型?事物:保證一系列數(shù)據(jù)庫操作能夠準確的完成,除非事務(wù)中的所有操作都成功,否則事務(wù)就不會完成事務(wù)的 4 個特性(ACID):Atomicity(原子性)、Consistency(一致性)、Isolation(隔離性)、Durability(持久性)Java 事物類型:

7、(1)JDBC 事務(wù):(2)JTA(Java Tranion API)事務(wù)(3)容器事務(wù)解釋 jdbc 的數(shù)據(jù)源機制1、DataSource 是 JDBC Connection 對象的一個工廠2、允許使用已經(jīng)在 JNDI 命名服務(wù)中實現(xiàn)的DataSource 對象建立連接,由驅(qū)動程序供應(yīng)商3、連接池機制:(1)Application Server 啟動時,創(chuàng)建通向數(shù)據(jù)庫資源的連接池。連接池包含多個 JDBC 連接。(2)當(dāng)應(yīng)用程序需要數(shù)據(jù)庫時,從連接池中取得接,使用該連接與數(shù)據(jù)庫通信;一旦工作完成,關(guān)閉數(shù)據(jù)庫連接,回連接池中。(3)連接池與連接到數(shù)據(jù)庫對比:連接到數(shù)據(jù)庫:需要通信、內(nèi)存、等來創(chuàng)

8、建連接,代價昂貴;對于站點的每一個客戶機都建立了一個新的連接,費用太高連接池:重用連接,而非建立新連接;一組加載到內(nèi)存中的數(shù)據(jù)庫連接,以便重復(fù)使用;允許共享數(shù)據(jù)庫連接,不是為每個客戶分別提供單獨的連接;借助連接池,對連接數(shù)量進行必要的定量限制,數(shù)據(jù)庫才是最有效的。了解 jndiJNDI:Java 命名和目錄接口(Java Naming and Directoryerface),為開發(fā)提供了查找和各種命名和目錄服務(wù)的通用、的方式。(中心,了各種對象、用戶和應(yīng)用的變量及其值,開發(fā)大型的分布式應(yīng)用,使分布式的 Java 程序找到分布式的對象)分布式應(yīng)用程序:通過 RMI 或 CORBA 向 JNDI

9、對象,其他任何客戶機上的應(yīng)用程序只需知道數(shù)據(jù)源對象在服務(wù)器 JNDI 中的邏輯名稱,就可以通過 RMI 向服務(wù)器查詢數(shù)據(jù)源,然后與數(shù)據(jù)庫建立連接3.JDBC 事務(wù)?(簡單解釋)1、用 Connection 對象控制;2、提供了兩種事務(wù)模式:自動提交和手動提交3、使用 JDBC 事務(wù)界定時,可以將多個SQL 語句結(jié)合到一個事務(wù)中4、缺點:事務(wù)的范圍局限于一個數(shù)據(jù)庫,一個 JDBC 事務(wù)不能多個數(shù)據(jù)庫5、java.sql.Connection 提供了以下控制事務(wù)的方法:public voidmit()publicmit()public void commit()public void rollba

10、ck()使用 jdbc 的最佳實踐1、盡可能使查詢更靈活更準確:SQL 語句2、調(diào)整數(shù)據(jù)庫的參數(shù)設(shè)置:適當(dāng)?shù)臄?shù)據(jù)庫緩沖策略等3、把初始化代碼放到init()方法中:只執(zhí)行一次4、使用批量更新:一次連接完成所有動作5、盡可能做現(xiàn)場更新:使用UPDATE 而不使用 INSERT,DELETE,REMOVE6、使用適當(dāng)?shù)姆椒ㄈ〉?JDBC 連接:DataSource7、適當(dāng)?shù)腏DBC 資源:finally 代碼塊中connection 資源8、不要閑置 JDBC 連接:盡快9、盡快的提交或回滾事務(wù)10、適當(dāng)設(shè)置連接池的容量11、不要讓事務(wù)涵蓋用戶的輸入:事務(wù)耗費數(shù)據(jù)庫和應(yīng)用服務(wù)器的資源,應(yīng)避免使用長

11、時間的事務(wù)12、盡可能利用數(shù)據(jù)庫的功能:數(shù)據(jù)庫觸發(fā)器等4.JTA?1、JTA 允許應(yīng)用程序執(zhí)行分布式事務(wù)處理在兩個或者是多個網(wǎng)絡(luò)計算機資源且更新數(shù)據(jù),這些數(shù)據(jù)可以分步在多個數(shù)據(jù)庫上問并2、兩階段提交:事務(wù)管理器和資源管理器之間使用的協(xié)議是 XA(資源和事務(wù)管理器之間的標準化接口)3、XA:資源和事務(wù)管理器之間的標準化接口XA參與了 JTA 事務(wù),XA不支持 JDBC 的自動提交功能4、開發(fā)事務(wù)的開始和提交(1)建立事務(wù)(2)啟動事務(wù)(3)定位數(shù)據(jù)源(4)建立數(shù)據(jù)庫連接(5)執(zhí)行與資源有關(guān)的操作(6)關(guān)閉連接(7)完成事務(wù)MVC1.基于 MVC 模式的 JavaEE Web 應(yīng)用構(gòu)架。View

12、層:呈現(xiàn)給用戶的界面(JSP 或應(yīng)用 GUI)(HTML tags;JSP tags XML/XSL)Controller 層:接受用戶動作,并對應(yīng)用數(shù)據(jù)進行適當(dāng)?shù)奶幚恚⊿ervlet)M層:封裝應(yīng)用數(shù)據(jù)(關(guān)系數(shù)據(jù)庫或EJB),處理商業(yè)邏輯(Bean/JavaBeans)2.常用的 MVC 框架。使用框架的優(yōu)點。Structs、Webwork、Spring、MVC 等優(yōu)點: 一個良好的框架可以讓開發(fā)減輕重新建立解決復(fù)雜問題方案的負擔(dān)和精力;它可以被擴展以進行一個問題。的定制化;并且有強大的用戶社區(qū)來支持它。框架通常能很好的解決*3.基于 JavaEE 做應(yīng)用時,有哪些常用的設(shè)計模式?1、MVC

13、 模式;2、Front Controller 模式:對所有請求進行處理;3、sesfaade 模式;4、Data Acs Object 模式消息服務(wù) JMS(Java Message Service)jms1、一個使用可靠的、異步的、松耦合的API。方式允許應(yīng)用創(chuàng)建,發(fā)送,接收和信息的2、JMS 定義了一個通用的接口和相關(guān)語義集合,它可以允許使用 Java 語言編寫的程序與其他可以發(fā)送消息的實現(xiàn)進行通信兩種消息域1、點對點(PTP):JMS 把每一個消息傳遞給一個消息消費者(Message Consumer)點對點消息處理方式:(1)按照發(fā)送的順序把消息寫入并保存到隊列中;(2)消息消費者處理

14、隊列中的消息。2、發(fā)布/訂閱(pub/sub):把消息發(fā)送給一個(Topic),每個有多個訂閱者,由JMS 把消息的副本傳遞給的每個訂閱者發(fā)布/訂閱消息處理:*補充:消息消費的方式:同步、異步1.使用消息的應(yīng)用場景智能的交換機,用于路由分布式應(yīng)用中的應(yīng)用程序組件和進程中的消息異步傳遞消息,大量數(shù)據(jù)數(shù)據(jù)庫時需要一個安全的緩存,應(yīng)付大量的交易系統(tǒng)協(xié)同多系統(tǒng)之間的處理效率2.兩種消息應(yīng)用:隊列、,使用場景是什么?,1、隊列(點對點的消息處理機制)場景:web 前端發(fā)送包含訂貨信息的消息,倉庫管理系統(tǒng)接收這個消息,并且對訂貨進行適當(dāng)?shù)奶幚恚磿r有多個倉庫管理系統(tǒng),也不會同時處理同一個訂單,顧客的訂貨信

15、息應(yīng)當(dāng)持久保存。2、(發(fā)布/訂閱消息處理機制)當(dāng)過幾次之后,一個消息就會發(fā)送給一個“??汀闭军c為這些常客發(fā)送一個“特惠待遇”的消息3.對于消息的消費者來說:同步、異步,應(yīng)用場景是什么?1、對于同步消費者來說:如果消息沒有到達,那么消息消費者將一直等待,不能做其他的事情應(yīng)用場景:通過 JMS facade 更新數(shù)據(jù)庫(來自網(wǎng)絡(luò),不知對錯,一般情況下都是使用異步處理的)2、對于異步消費者來說:客戶機在消息到達之前,可以做其他的事情應(yīng)用場景:大量的交易系統(tǒng)等中間件中間件(不細節(jié)考慮,只要知道有哪幾類)過程調(diào)用(RPC)數(shù)據(jù)分布式事務(wù)處理消息隊列2.:RMI、JNDIRMI:Remote Method

16、 Invocation是用于分布式編程的,基于 java 的模型,使用 RMI,java 代碼可以調(diào)用對象中的方法JNDI:Java Naming and Directoryerface為不同的目錄提供一個共同的接口,JNDI 在 J2EE 應(yīng)用程序中的主要角色就是提供間接層這樣組件就可以發(fā)現(xiàn)所需要的資源,而不用了解這些間接性JPA1.對象關(guān)系的概念。(ORM,Object-Relation Map)1、是一種為了解決面象與關(guān)系數(shù)據(jù)庫存在的互不匹配的現(xiàn)象的技術(shù)2、ORM 是通過使用描述對象和數(shù)據(jù)庫之間的元數(shù)據(jù),將 java 程序中的對象自動持久化到關(guān)系數(shù)據(jù)庫中。本質(zhì)上就是將數(shù)據(jù)從一種形式轉(zhuǎn)換到

17、另外一種形式。3、關(guān)系數(shù)據(jù)庫是企業(yè)級應(yīng)用環(huán)境中存放數(shù)據(jù)的主流數(shù)據(jù)系統(tǒng)。對象和關(guān)系數(shù)據(jù)是業(yè)務(wù)實體的兩種表現(xiàn)形式,業(yè)務(wù)實體在內(nèi)存中表現(xiàn)為對象,在數(shù)據(jù)庫中表現(xiàn)為關(guān)系數(shù)據(jù)。實體類的設(shè)計規(guī)范,類似 java bean1、一個實體類必須被 javax.persistence.Entity 標注2、實體類還需要有一個 public 或者 protected 無參構(gòu)造函數(shù)3、實體類不能被為 final,不能有被為 final 的可持久化實例變量或方法4、如果一個實體類被作為 detached object 通過一個會話 bean 事務(wù)接口按值傳遞,那么這個類必須實現(xiàn)序列化接口5、實體類可能會繼承實體類和非實體

18、類,非實體類可以繼承實體類6、接可持久化的實例變量必須被為 private、protected,并且只能被實體類中的方法直,客戶端必須通過 acsor 或者 business method 進行被打包為持久性單元,內(nèi)容,目錄結(jié)構(gòu)安全容器提供兩類安全:1、式安全(Declarative security):通過使用開發(fā)描述(deployment descriptors)或者注釋(annoions)來實現(xiàn)一個應(yīng)用組件的安全要求;Deployment descriptors 對于一個應(yīng)用來說是外在的,包括了具體描述安全角色和要求向具體的環(huán)境安全角色、用戶和策略的關(guān)系(1)使用表單/瀏覽器/客戶(2)

19、把安全配置情況在配置描述文件中角色、控制、認證要求Web.xml(3)優(yōu)先選擇的模式2、編程式安全(Programmatic security):嵌入在應(yīng)用中被用來作出安全決策;Programmaticsecurity 在只使用式安全以表現(xiàn)安全模型的時候適用(1)細粒度的編程安全性(2)HttpServletRequest 接口getAuthType();getRemoteUser();getUsrincipal();isuserInRole();部署文件中包含哪些信息為 Web 應(yīng)用確定具體的login-config 元素 ,其子元素機制,在應(yīng)用部署描述中auth-method 配置了 We

20、b 應(yīng)用的機制,元素的內(nèi)容必須是BASIC,DIGEST, FORM,CNT-CERT, 或者一個供應(yīng)商特定的認證機制框架hibernate 三種配置方式。Hibernate 配置文件一般放到 CLASSPATH 環(huán)境指定的路徑的根目錄,但事實上可以放到任何路徑下1、用 XML 文件配置 Hibernate(默認配置文件hibernate.cfg.xml)2、用屬性文件配置Hibernate(屬性文件名為 perties)3、用編程方式配置Hibernate(步驟:建立會話工廠、建立實體Bean、建立過注釋、建立添加的 Action 類)文件、通spring,容器,beanfactory 類的

21、作用1、容器:提供的基礎(chǔ)功能所有模塊都建立在容器之上,容器規(guī)定如何創(chuàng)建、配置、管理 Bean,以及一些具體細節(jié)。(1)BeanFactory 類,是所有基于 Spring 框架系統(tǒng)的;采用了工廠模式來實現(xiàn) IoC,將系統(tǒng)配置和依賴關(guān)系從代碼中獨立出來。使Spring 成為容器。(2)應(yīng)用上下文模塊(Application Context):擴展了 BeanFactory,添加了對統(tǒng)生命周期事件及驗證的支持;使Spring 成為框架,系(3)建立在應(yīng)用上下文模塊基礎(chǔ)上,提供適合Web 系統(tǒng)的上下文2、BeanFactory 的作用:負責(zé)創(chuàng)建并Bean 實例;可配置的項目:(1)Bean 屬性值及依賴關(guān)系(對其他 Bean 的)(2)Bean 創(chuàng)建模式(是否Singleton 模式,即是否

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論