基本信息
書名:ejb3實戰
書號:17789
作者:debup andare zarahman dereklane
圖書簡介
本書詳細介紹了使用ejb3進行企業級開發的方方面面,包括ejb3基礎、使用ejb3構造業務邏輯、java持久化api、ejb3的實際套用、移植性和互操作性,等等。基於現實場景,本書提供了大量實用的範例代碼、最佳實踐、設計模式和性能最佳化技巧。通過對這些知識的學習,開發者能創建健壯的、可擴展的、基於標準的解決方案。
本書是一本快速上手指南。對於ejb的初學者而言,本書提供了精彩的入門指導;對於從ejb2遷移到ejb3的有經驗的開發者來說,本書在ejbapi、java持久化等多個方面提供了詳細的參考。
書籍目錄
目錄:
第一部分ejb概述
第1章ejb3是什麼2
1.1ejb概述3
1.1.1ejb作為組件3
1.1.2ejb作為框架4
1.1.3分層架構和ejb5
1.1.4為什麼選擇ejb38
1.2了解ejb類型9
1.2.1會話bean10
1.2.2訊息驅動bean11
1.2.3實體和jpa11
1.3深入ejb12
1.3.1訪問ejb服務:ejb容器13
1.3.2訪問jpa服務:持久化提供器13
1.3.3使用ejb服務的功能14
1.4ejb的新生15
1.4.1hellouser示例16
1.4.2簡化的程式設計模型17
1.4.3用註解,不用部署描述檔案17
1.4.4依賴注入與jndi查找18
1.4.5簡化的持久化api18
1.4.6可進行單元測試的pojo組件19
1.4.7ejb3和spring20
1.5小結21
第2章ejb3初體驗22
2.1新特性:簡化ejb23
2.1.2依賴注入簡介26
2.2actionbazaar應用程式簡介27
2.2.1從構造的一個子集開始27
2.2.2基於ejb3的解決方案28
2.3使用會話bean構造業務邏輯30
2.3.1使用無狀態bean30
2.3.2無狀態bean客戶端31
2.3.3使用有狀態bean33
2.3.4有狀態bean客戶端36
2.4訊息和訊息驅動bean38
2.4.1生成賬單訊息38
2.4.2使用訂單賬單訊息處理器mdb41
2.5使用ejb3jpa持久化數據42
2.5.1使用jpa43
2.5.2使用entitymanager45
2.6小結47
第二部分使用ejb3構造業務邏輯
第3章使用會話bean構造業務邏輯50
3.1會話bean簡介50
3.1.1為什麼使用會話bean51
3.1.2會話bean基礎52
3.1.3了解程式設計原則54
3.1.4會話狀態和會話bean類型55
3.1.5bean生命周期回調55
3.2無狀態會話bean57
3.2.1bidmanagerbean示例58
3.2.2使用@stateless註解60
3.2.3指定業務接口61
3.2.4使用bean生命周期回調63
3.3有狀態會話bean65
3.3.1附加程式設計原則66
3.3.2bidderaccountcreatorbean示例66
3.3.3有狀態bean的業務接口69
3.3.4有狀態bean的生命周期回調70
3.4會話bean客戶端72
3.4.1使用@ejb註解73
3.4.2注入和有狀態會話bean74
3.5有狀態bean的性能注意事項74
3.5.1有效地使用有狀態會話bean74
3.5.2有狀態會話bean的替代方式75
3.6會話bean最佳實踐76
3.7小結76
第4章訊息和開發mdb77
4.1訊息概念77
4.1.1面向訊息的中間件78
4.1.2actionbazaar中的訊息78
4.1.3訊息模型80
4.2java訊息服務簡介81
4.2.1開發jms訊息生產者82
4.2.2jms訊息接口83
4.3使用訊息驅動bean85
4.3.1為什麼使用mdb85
4.3.2程式設計原則86
4.3.3使用mdb開發訊息消費者87
4.3.4使用@messagedriven註解89
4.3.5實現messagelistener89
4.3.6使用activationconfig-property90
4.3.7使用bean生命周期回調93
4.3.8從mdb傳送jms訊息95
4.3.9管理mdb事務96
4.4mdb最佳實踐96
4.5小結97
第5章學習高級ejb概念99
5.1ejb內幕99
5.1.1幕後的ejb99
5.1.2ejb上下文:訪問運行時環境100
5.2使用依賴注入和jndi訪問資源103
5.2.1使用@resource注入資源103
5.2.2@resource註解實際套用107
5.2.3查找資源和ejb109
5.3ejb中的aop:攔截器110
5.3.1aop是什麼111
5.3.2攔截器是什麼111
5.3.3指定攔截器113
5.3.4實現業務攔截器114
5.3.5攔截器類中的回調方法117
5.4調度:ejb3計時器服務118
5.4.1計時器是什麼118
5.4.2使用計時器服務119
5.4.3何時使用ejb計時器123
5.5小結124
第6章事務和安全125
6.1了解事務125
6.1.1actionbazaar中的事務解決方案126
6.1.2acid屬性126
6.1.3事務管理內幕128
6.1.4兩階段提交129
6.1.5ejb中的事務管理130
6.2容器管理的事務130
6.2.1使用cmt實現snag-it訂購130
6.2.2@transactionmanagement註解131
6.2.3@transactionattribute註解132
6.2.4使cmt使用回調134
6.2.5事務和異常處理135
6.3bean管理的事務138
6.3.1使用bmt實現snag-it訂購138
6.3.2獲得usertransaction139
6.3.3使用usertransaction140
6.3.4bmt的優缺點141
6.4分析ejb安全142
6.4.1驗證和授權142
6.4.2用戶、組和角色142
6.4.3actionbazaar中的安全問題143
6.4.4ejb3和javaee安全144
6.4.5聲明式安全146
6.4.6使用ejb程式式安全148
6.5小結150
第三部分研究jpa
第7章實現域模型152
7.1域建模和jpa152
7.1.1介紹域模型153
7.1.2actionbazaar問題域153
7.1.3域模型參與者155
7.1.4ejb3java持久化api156
7.1.5域對象作為java類157
7.2使用jpa實現域對象159
7.2.1@entity註解159
7.2.2持久化實體數據160
7.2.3指定實體身份163
7.2.4@embeddable註解167
7.3實體關係168
7.3.1@onetoone168
7.3.2@onetomany和@manytoone171
7.3.3@manytomany173
7.4小結175
第8章對象關係映射176
8.1阻抗失配176
8.1.1把對象映射到資料庫177
8.1.2介紹o/r映射180
8.2映射實體181
8.2.1指定表183
8.2.2映射列184
8.2.3使用@enumerated185
8.2.4映射clob和blob186
8.2.5映射臨時類型186
8.2.6把實體映射到多個表187
8.2.7生成主鍵188
8.2.8映射可嵌入類190
8.3映射實體關係192
8.3.1映射一對一關係193
8.3.2一對多和多對一196
8.3.3多對多198
8.4映射繼承200
8.4.1單表策略201
8.4.2聯結表策略202
8.4.3每個類一個表策略204
8.4.4映射多態關係206
8.5小結206
第9章使用entitymanager操作實體207
9.1介紹entitymanager207
9.1.1entitymanager接口208
9.1.2實體的生命周期210
9.1.3持久化上下文、作用域和entitymanager212
9.1.4在actionbazaar中使用entitymanager213
9.2創建entitymanager實例215
9.2.1容器管理的entitymanager215
9.2.2應用程式管理的entitymanager217
9.3管理持久化操作222
9.3.1持久化實體222
9.3.2通過主鍵檢索實體226
9.3.3更新實體230
9.3.4刪除實體232
9.3.5通過轉儲清除控制更新233
9.3.6刷新實體234
9.4實體生命周期監聽器236
9.4.1使用實體監聽器236
9.4.2默認監聽器類238
9.4.3監聽器類的執行順序和排除238
9.5實體操作最佳實踐239
9.6小結240
第10章使用查詢api和jpql檢索實體241
10.1介紹查詢api241
10.1.1背景241
10.1.2剖析查詢242
10.1.3定義命名查詢243
10.2執行查詢244
10.2.1創建查詢實例244
10.2.2使用query接口246
10.2.3指定查詢提示250
10.3介紹jpql251
10.3.1定義語句類型251
10.3.2使用from子句253
10.3.3條件表達式和操作256
10.3.4使用jpql函式259
10.3.5使用select子句261
10.3.6使用聚合263
10.3.7排序查詢結果264
10.3.8使用子查詢265
10.3.9聯結實體266
10.3.10批更新和批刪除268
10.4原生sql查詢268
10.4.1使用原生sql的動態查詢269
10.4.2使用命名原生sql查詢270
10.5小結271
第四部分ejb3的實際套用
第11章打包ejb3應用程式274
11.1給應用程式打包275
11.1.1剖析ear檔案276
11.1.2載入ear模組277
11.2分析類載入279
11.2.1類載入基礎279
11.2.2分析典型的父委託模型281
11.2.3javaee應用程式中的類載入282
11.2.4javaee模組之間的相關性282
11.3.1打包ejb-jar284
11.3.2部署描述檔案與註解285
11.3.4指定默認攔截器設定289
11.3.5使用廠商專有的註解和描述檔案289
11.4打包實體290
11.4.1暴露持久化模組291
11.4.2使用persistence.xml描述持久化模組291
11.4.3使用orm.xml執行o/r映射296
11.5最佳實踐和常見部署問題299
11.5.1打包和部署最佳實踐299
11.5.2診斷常見部署問題300
11.6小結301
第12章有效地跨越應用程式層集成ejb3
12.1設計模式和web技術302
12.1.1表現層303
12.1.2使用eao模式305
12.1.3介紹sessionfacade模式308
12.2從web層訪問會話bean312
12.2.1使用依賴注入訪問會話bean313
12.2.2從幫助器類引用會話bean314
12.2.3處理事務316
12.2.4處理有狀態會話bean317
12.3從web層使用jpa318
12.3.1使用容器管理的實體管理器318
12.3.2通過jta事務使用應用程式管理的entitymanager320
12.3.3在容器外訪問應用程式管理的entitymanager321
12.4小結323
第13章馴服ejb:性能和可伸縮性324
13.1處理實體鎖定問題325
13.1.1了解鎖定類型325
13.1.2樂觀鎖定和實體版本327
13.1.3entitymanager和鎖定模式328
13.2提高實體性能330
13.2.1重新建模和重新設計計畫330
13.2.2最佳化jdbc層333
13.2.3減少資料庫操作334
13.2.4提高查詢性能337
13.2.5快取340
13.3提高ejb3組件的性能344
13.3.1會話bean性能344
13.3.2提高mdb性能346
13.4集群ejb應用程式347
13.4.1協同定位架構348
13.4.2無狀態會話bean的負載平衡348
13.4.3集群有狀態會話bean350
13.4.4實體和集群快取352
13.5小結353
第五部分移植和互操作性
第14章移植到ejb3356
14.1與ejb2的向後兼容性和互操作性356
14.1.1將ejb2和ejb3打包在一起357
14.1.2從ejb3調用ejb2357
14.1.3從ejb2使用ejb3358
14.2移植會話bean360
14.2.1轉換接口和bean類360
14.2.2資源使用363
14.2.3事務和安全設定364
14.2.4客戶端應用程式364
14.4把cmp2實體移植到ejb3jpa366
14.4.1重新設計域模型366
14.4.2dto用作實體369
14.4.3實體bean類和接口370
14.4.4客戶端應用程式376
14.5移植jdbcdao使用ejb3jpa377
14.5.1標識實體378
14.5.2重新構造dao實現類使用entitymanagerapi379
14.5.3sql查詢轉換為jpql380
14.6幫助o/r框架使用ejb3jpa381
14.7移植方法382
14.7.1策略383
14.7.2手工與自動383
14.8小結383
15.1web服務是什麼385
15.1.1認識web服務組件386
15.1.2web服務樣式391
15.1.3開發web服務的方法391
15.2jax-ws:javaee5web服務平台392
15.2.1介紹web服務平台392
15.2.2與pojo相比,為什麼選擇ejb用於web服務393
15.3使用jax-ws2.0開發ejbweb服務393
15.3.1使用@webservice註解395
15.3.2使用@soapbinding指定web服務樣式396
15.3.3使用@webmethod註解397
15.3.4使用@webparam註解399
15.3.5使用@webresult註解400
15.3.6使用@oneway和@handlerchain註解400
15.4從ejb訪問web服務401
15.4.1訪問placebidweb服務401
15.4.2ejb作為web服務客戶403
15.5web服務開發的最佳實踐404
15.6小結405
第16章ejb3和spring406
16.1.1spring框架的優勢407
16.1.2控制反轉原理408
16.1.3關注分離原理408
16.2通過spring使用jpa409
16.2.1構造spring的jpaeao410
16.2.2配置spring使用jpa412
16.3結合ejb3和spring的功能415
16.3.1開發支持spring的ejb415
16.3.2從springbean使用會話bean417
16.4小結418
附錄armi和jndi420
附錄b複習關係資料庫426
附錄c註解參考431
附錄d部署描述檔案參考447
附錄e安裝和配置javaee5sdk462
資源472
索引475