POJOs in action: developing enterprise applications with lightweight frameworks
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Greenwich, CT
Manning
2006
|
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | Includes bibliographical references (p. 535-537) and index |
Beschreibung: | XXXII, 560 p. graph. Darst. 24 cm |
ISBN: | 1932394583 |
Internformat
MARC
LEADER | 00000nam a2200000zc 4500 | ||
---|---|---|---|
001 | BV021783165 | ||
003 | DE-604 | ||
005 | 20171023 | ||
007 | t | ||
008 | 061025s2006 xxud||| |||| 00||| eng d | ||
010 | |a 2006295422 | ||
015 | |a GBA580279 |2 dnb | ||
020 | |a 1932394583 |c pbk. |9 1-932394-58-3 | ||
035 | |a (OCoLC)64118130 | ||
035 | |a (DE-599)BVBBV021783165 | ||
040 | |a DE-604 |b ger |e aacr | ||
041 | 0 | |a eng | |
044 | |a xxu |c US | ||
049 | |a DE-1051 | ||
050 | 0 | |a QA76.73.J38 | |
082 | 0 | |a 005.133 |2 22 | |
100 | 1 | |a Richardson, Chris |d 1985- |e Verfasser |0 (DE-588)1105501469 |4 aut | |
245 | 1 | 0 | |a POJOs in action |b developing enterprise applications with lightweight frameworks |c Chris Richardson |
264 | 1 | |a Greenwich, CT |b Manning |c 2006 | |
300 | |a XXXII, 560 p. |b graph. Darst. |c 24 cm | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
500 | |a Includes bibliographical references (p. 535-537) and index | ||
650 | 4 | |a Java (Computer program language) | |
650 | 4 | |a Computer software |x Development | |
650 | 4 | |a Object-oriented programming (Computer science) | |
856 | 4 | 2 | |m GBV Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014995916&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-014995916 |
Datensatz im Suchindex
_version_ | 1804135657076948992 |
---|---|
adam_text | POJOS IN ACTION DEVELOPING ENTERPRISE APPLICATIONS WITH LIGHTWEIGHT
FRAMEWORKS CHRIS RICHARDSON MANNING GREENWICH (74 W. LONG.) CONTENTS
PREFACE XIX ACKNOWLEDGMENTS XXI ABOUT THIS BOOK XXIII ABOUT THE TITLE
ABOUT THE COVER ILLUSTRATION XXX V PART 1 OVERVIEW OF POJOS AND
LIGHTWEIGHT FRAMEWORKS ........».... I DEVELOPING WITH POJOS: FASTER
AND EASIER 3 1.1 THE DISILLUSIONMENT WITH EJBS 5 A BRIEFHISTORY OFEJBS 5
* A TYPICALEJB 2 APPLICATION ARCHITECTURE 6 THE PROBLEMS WITH EJBS 7 *
EJB 3ISA STEP IN THE RIGHT DIRECTION 11 1.2 DEVELOPING WITH POJOS 12
USING AN OBJECT-ORIENTED DESIGN 14 * USINGPOJOS 15 * PERSISTING POJOS 16
* ELIMINATINGDTOS 18 * MAKINGPOJOS TRANSACTIONAL 19* CONFIGURING
APPLICATIONS WITH SPRING 25 DEPLOYING A POJO APPLICATION 27 * POJO
DESIGN SUMMARY 28 1.3 SUMMARY 30 1 IX X CONTENTS J2EE DESIGN DECISIONS
31 2.1 BUSINESS LOGIC AND DATABASE ACCESS DECISIONS 32 2.2 DECISION 1:
ORGANIZING THE BUSINESS LOGIC 35 USING A PROCEDURAL DESIGN 35 * USING AN
OBJECT-ORIENTED DESIGN 36 TABLE MODULE PATTERN 3 7 2.3 DECISION 2:
ENCAPSULATING THE BUSINESS LOGIC 37 EJB SESSION FACADE 38 * POJOFACADE
39 EXPOSED DOMAIN MODEL PATTERN 40 2.4 DECISION 3: ACCESSING THE
DATABASE 41 WHAT S WRONG WITH USINGFL)BC DIRECTLY ? 41 USING IBATIS 42
* USING A PERSISTENCEFRAMEWORK 43 2.5 DECISION 4: HANDLING CONCURRENCY
IN DATABASE TRANSACTIONS 44 ISOLATED DATABASE TRANSACTIONS 44 *
OPTIMISTIC LOCKING 45 PESSIMISTIC LOCKING 45 2.6 DECISION 5: HANDLING
CONCURRENCY IN LONG TRANSACTIONS 46 OPTIMISTIC OFFLINE LOCK PATTERN 46
PESSIMISTIC OFFLINE LOCK PATTERN 4 7 2.7 MAKING DESIGN DECISIONS ON A
PROJECT 48 OVERVIEW OF THE EXAMPLE APPLICATION 48 * MAKING HIGH-LEVEL
DESIGN DECISIONS 51 * MAKING USE CASE-LEVEL DECISIONS 53 2.8 SUMMARY 58
USING THE DOMAIN MODEL PATTERN 61 3.1 UNDERSTANDING THE DOMAIN MODEL
PATTERN 62 WHERE THE DOMAIN MODEL FITS INTO THE OVERALL ARCHITECTURE 63
AN EXAMPLE DOMAIN MODEL 64 * ROLES IN THE DOMAIN MODEL 66 3.2 DEVELOPING
A DOMAIN MODEL 68 IDENTIFYING CLASSES, ATTRIBUTES, AND RELATIONSHIPS 69
ADDING BEHAVIOR TO THE DOMAIN MODEL 69 CONTENTS 3.3 IMPLEMENTING A
DOMAIN MODEL: AN EXAMPLE 80 IMPLEMENTING A DOMAIN SERVICE METHOD 80 *
IMPLEMENTING A DOMAIN ENTITY METHOD 87 * SUMMARY OFTHE DESIGN 92 3.4
SUMMARY 93 OVERVIEW OF PERSISTING A DOMAIN MODEL 95 4.1 MAPPING AN
OBJECT MODEL TO A DATABASE 96 MAPPING CLASSES 97 *
MAPPINGOBJECTRELATIONSHIPS 99 MAPPING INHERITANCE 103 * MANAGING OBJECT
LIFECYCLES 107 PERSISTENT OBJECT IDENTITY 107 4.2 OVERVIEW OF ORM
FRAMEWORKS 108 WHY YOU DON T WANT TO PERSIST OBJECTS YOURSELF 109 * THE
KEY FEATURES OFAN ORMFRAMEWORK 109 * BENEFITS AND DRAWBACKS OF USING AN
ORMFRAMEWORK 114 4.3 OVERVIEW OFJDO AND HIBERNATE 117 DECLARATIVE
MAPPING BETWEEN THE OBJECT MODEL AND THE SCHEMA 117 API FOR CREATING,
READING, UPDATING, AND DELETING OBJECTS 118 QUERY LANGUAGE 119* SUPPORT
FOR TRANSACTIONS 120 LAZY AND EAGER LOADING 121 * OBJECT CACHING 121 *
DETACHED OBJECTS 124 HIBERNATE VS. JDO 124 4.4 DESIGNING REPOSITORIES
WITH SPRING 125 IMPLEMENTINGJDO AND HIBERNATE REPOSITORIES 125 * USING
THE SPRING ORM CLASSES 126 * MAKING REPOSITORIES EASIER TO TEST 129 4.5
TESTING A PERSISTENT DOMAIN MODEL 132 OBJECT/RELATIONAL TESTING
STRATEGIES 133 * TESTING AGAINST THE DATABASE 135 * TESTING WITHOUT THE
DATABASE 138 OVERVIEW OF ORMUNIT 140 4.6 PERFORMANCE TUNINGJDO AND
HIBERNATE 141 WITHOUT ANY TUNING 141 * CONFIGURING EAGER LOADING 142
USING A PROCESS-LEVEL CACHE 145* USING THE QUERY CACHE 145 4.7 THE
EXAMPLE SCHEMA 146 4.8 SUMMARY 148 PERSISTING A DOMAIN MODEL ZUITHJDO
2.0 149 5.1 JDO ISSUES AND LIMITATIONS 150 CONFIGURING JDO OBJECT
IDENTITY 151 * PERSISTING INTERFACES 155 USING THE JDO ENHANCER 158 5.2
PERSISTING A DOMAIN MODEL CLASS WITH JDO 159 WRITINGSS)0 PERSISTENCE
TESTS WITH ORMUNIT 159 * TESTING PERSISTENT JDO OBJECTS 164 * MAKING A
CLASS PERSISTENT 170 5.3 IMPLEMENTING THE JDO REPOSITORIES 173 WRITING A
MOCK OBJECT TEST FORFINDRESTAURANTSQ 174 * IMPLEMENTING
JDORESTAURANTREPOSITORYLMPL 178 * WRITING THE QUERY THATFINDS THE
RESTAURANTS 180* WRITING TESTS FWR A QUERY 180 5.4 JDO PERFORMANCE
TUNING 183 USING FETCH GROUPS TOOPTIMIZE OBJECT LOADING 184 USING A
PERSIS- TENCEMANAGERFACTORY-LEVEL CACHE 191 * USING A QUERY CACHE 193
5.5 SUMMARY 193 PERSISTING A DOMAIN MODEL WITH HIBERNATE 3 195 6.1
HIBERNATE ORM ISSUES 196 FIELDS OR PROPERTIES 196* HIBERNATE ENTITIES
AND COMPONENTS 198 CONFIGURING OBJECT IDENTITY 200 * USING THE CASCADE
ATTRIBUTE 205 PERSISTING INTERFACES 207 6.2 OTHER HIBERNATE ISSUES 209
EXCEPTION HANDLING 209 LAZY LOADING AND INHERITANCE HIERARCHIES 209 6.3
PERSISTING A DOMAIN MODEL CLASS USING HIBERNATE 212 WRITING HIBERNATE
PERSISTENCE TESTS WITH ORMUNIT 213* TESTING PERSISTENT HIBERNATE OBJECTS
217 * MAKING A CLASS PERSISTENT 224 6.4 IMPLEMENTING A REPOSITORY USING
HIBERNATE 228 WRITING A MOCK OBJECT TESTFORA REPOSITORY METHOD 228 *
IMPLEMENTING HIBERNATERESTAURANTREPOSITORYLMPL 231 * WRITING THE QUERY
THAT FINDS THE RESTAURANTS 232 * WRITING TESTS FOR A QUERY 233 6.5
HIBERNATE PERFORMANCE TUNING 234 USING EAGER LOADING 235 * USING A
PROCESS-LEVEL CACHE 240 USING A QUERY CACHE 241 6.6 SUMMARY 242
ENCAPSULATING THE BUSINESS LOGIC XVITH A POJOFACADE 243 7.1 OVERVIEW OF
A POJO FACADE 244 AN EXAMPLE POJO FACADE 245 * BENEFITS OFA POJO FACADE
247 DRAWBACKS OFA POJOFACADE 248 * WHEN TO USE A POJOFAGADE AND DETACHED
DOMAIN OBJECTS 250 CONTENTS XIII 7.2 POJO FACADE DESIGN DECISIONS 251
ENCAPSULATING THE DOMAIN OBJECTS 251 * DETACHING OBJECTS 254 EXCEPTIONS
VERSUS STATUS CODES 256 * MANAGING TRANSACTIONS AND CONNECTIONS 257 *
IMPLEMENTING SECURITY 261 SUPPORTING REMOTE CLIENTS 263 7.3 DESIGNING A
POJO FACADE S INTERFACE 264 DETERMINING THE METHOD SIGNATURES 264 7.4
IMPLEMENTING THE POJO FAGADE 267 WRITING A TESTFOR A POJO FACADE METHOD
267 IMPLEMENTING UPDATERESTAURANT() 270 7.5 IMPLEMENTING A RESULT
FACTORY 272 IMPLEMENTING A HIBERNATE RESULT FACTORY 2 73 IMPLEMENTING
AJDO RESULT FACTORY 2 75 7.6 DEPLOYING THE POJO FAGADE WITH SPRING 279
GENERIC BEAN DEFINITIONS 280 * JDO-SPECIFIC BEAN DEFINITIONS 282
HIBERNATE BEAN DEFINITIONS 284 7.7 SUMMARY 286 USING AN EXPOSED DOMAIN
MODEL 289 8.1 OVERVIEW OF THE EXPOSED DOMAIN MODEL PATTERN 290 APPLYING
THE EXPOSED DOMAIN MODEL PATTERN 291 * BENEFITS AND DRAWBACKS OF THIS
PATTERN 293* WHEN TO USE THE EXPOSED DOMAIN MODEL PATTERN 294 8.2
MANAGING CONNECTIONS USING A SPRING FILTER 295 8.3 MANAGING TRANSACTIONS
296 MANAGING TRANSACTIONS IN THE PRESENTATION HER 297 MANAGING
TRANSACTIONS IN THE BUSINESS HER 299 8.4 AN EXAMPLE OF THE EXPOSED
DOMAIN MODEL PATTERN 304 SERVLET DESIGN 306 * JSPPAGE DESIGN 309
PLACEORDERSERVICE CONFIGURATION 310 8.5 USING JDO WITH AN EXPOSED DOMAIN
MODEL 311 DEFINING THE SPRING BEANS 311 CONFIGURING THE WEB APPLICATION
312 8 8.6 USING HIBERNATE WITH AN EXPOSED DOMAIN MODEL 314 DEFINING THE
SPRING BEANS 314 CONFIGURING THE WEB APPLICATION 314 8.7 SUMMARY 316
USING THE TRANSACTION SCRIPT PATTERN 317 9.1 OVERVIEW OF THE TRANSACTION
SCRIPT PATTERN 318 APPLYING THE TRANSACTION SCRIPT PATTERN 319 BENEFITS
AND DRAWBACKS OFTHE TRANSACTION SCRIPT PATTERN 322 WHEN TO USE THE
TRANSACTION SCRIPT PATTERN 324 9.2 IDENTIFYING THE TRANSACTION SCRIPTS
325 ANALYZING THE USE CASE 325 * ANALYZING THE USER INTERFACE DESIGN 326
* THE PLACEORDERTRANSACTIONSCRIPTS INTERFACE 327 9.3 IMPLEMENTING A POJO
TRANSACTION SCRIPT 329 WRITING A TESTFOR THE TRANSACTION SCRIPT 329
WRITING THE TRANSACTION SCRIPT 333 9.4 IMPLEMENTING THE DAOS WITH IBATIS
AND SPRING 337 OVERVIEW OF USING IBATIS WITH SPRING 339 IMPLEMENTING A
DAO METHOD 343 9.5 CONFIGURING THE TRANSACTION SCRIPTS USING SPRING 354
HOW SPRING MANAGESJDBC CONNECTIONS AND TRANSACTIONS 354 THE SPRING BEAN
DEFINITIONS 355 9.6 SUMMARY 358 IMPLEMENTING POJOS WITH EJB 3 360 10.1
OVERVIEW OF EJB 3 361 KEY IMPROVEMENTS IN EJB 3 362 * KEY LIMITATIONS
OFEJB 3 368 10.2 IMPLEMENTING A DOMAIN MODEL WITH EJB 3 372 MAPPING THE
CLASSES TO THE DATABASE 372 IMPLEMENTING REPOSITORIES 380 TESTING THE
PERSISTENT EJB DOMAIN MODEL 382 10.3 IMPLEMENTING A FACADE WITH EJB 3
385 TURNING A POJO FACADE INTO A SESSION BEAN 386 DETACHING OBJECTS 387
10.4 ASSEMBLING THE COMPONENTS 389 USING EJB DEPENDENCY INJECTION 390
INTEGRATING SPRING AND EJB DEPENDENCY INJECTION 392 USING SPRING
DEPENDENCY INJECTION 398 CONTENTS XV 10.5 IMPLEMENTING OTHER PATTERNS
WITH EJB 3 400 IMPLEMENTING THE EXPOSED DOMAIN MODEL PATTERN 400 *
IMPLEMENT- ING THE TRANSAKTION SCRIPT PATTERN 401 * IMPLEMENTING DYNAMIC
PAGED QUERIES 401 * IMPLEMENTING THE CONCURRENCY PATTERNS 403 10.6
SUMMARY 403 PART 4 DEALING WITH DATABASES IMPLEMENTING DYNAMIC PAGED
QUERIES 407 11.1 KEY DESIGN ISSUES 408 IMPLEMENTING A PAGING MECHANISM
410 * GENERATING QUERIES DYNAMICALLY 413* IMPROVING THE PERFORMANCE OF
SQL QUERIES 414 11.2 IMPLEMENTING DYNAMIC PAGED QUERIES WITH IBATIS 418
USING QUERYFORLIST() TO SELECT THE ROWS 420 USING ROWNUM TO SELECT THE
ROWS 422 11.3 IMPLEMENTING PAGED QUERIES WITH JDO AND HIBERNATE 424
GENERATING HIBERNATE ANDSS)0 QUERIES DYNAMICALLY 426* LOADING THE DATA
WITH A SINGLE SELECT STATEMENT 428 * LOADING A SUBSET OF AN
OBJECT SFIELDS 431 * WORKING WITH A DENORMALIZED SCHEMA 434 IMPLEMENTING
PAGING 435 11.4 A JDO DESIGN EXAMPLE 438 THE JDOORDERREPOSITORYLMPL
CLASS 439 THE EXECUTEFINDORDERSQUERY CLASS 441 11.5 A HIBERNATE DESIGN
EXAMPLE 442 THE HIBERNATEORDERREPOSITORYLMPL CLASS 443 THE
FINDORDERSHIBEMATECAUEBACK CLASS 444 11.6 USING JDO AND HIBERNATE NATIVE
SQL QUERIES 446 USINGFL)0 NATIVE SQL QUERIES 446 USING HIBERNATE SQL
QUERIES 448 11.7 SUMMARY 449 11 DATABASE TRANSACTIONS AND CONCURRENCY
451 12.1 HANDLING CONCURRENT ACCESS TO SHARED DATA 452 USINGFULLY
ISOLATED TRANSACTIONS 453 * OPTIMISTIC LOCKING 454 PESSIMISTIC LOCKING
458* USING A COMBINATION OF LOCKING MECHANISMS 461 12.2 HANDLING
CONCURRENT UPDATES IN A JDBC/IBATIS APPLICATION 462 DESIGN OVERVIEW 462*
USING OPTIMISTIC LOCKING 464* USING PES- SIMISTIC LOCKING 466 * USING
SERIALIZABLE OR REPEATABLE READ TRANSACTIONS 466 * SIGNALING CONCURRENT
UPDATE FAILURES 468 12.3 HANDLING CONCURRENT UPDATES WITH JDO AND
HIBERNATE 472 EXAMPLE DOMAIN MODEL DESIGN 472* HANDLING CONCURRENT
UPDATES WITH JDO 474 * HANDLING CONCURRENT UPDATES WITH HIBERNATE 478
12.4 RECOVERING FROM DATA CONCURRENCY FAILURES 483 USING AN AOP
INTERCEPTOR TO RETRY TRANSACTIONS 484 CONFIGURING THE AOP INTERCEPTOR
485 12.5 SUMMARY 486 USING OFFLINE LOCKING PATTEMS 488 13.1 THE NEED FOR
OFFLINE LOCKING 489 AN EXAMPLE OFAN EDIT-STYLE USE CASE 490 HANDLING
CONCURRENCY IN AN EDIT-STYLE USE CASE 490 13.2 OVERVIEW OF THE
OPTIMISTIC OFFLINE LOCK PATTERN 492 APPLYING THE OPTIMISTIC OFFLINE LOCK
PATTERN 493 * BENEFITS AND DRAWBACKS 494* WHEN TO USE THIS PATTERN 494
13.3 OPTIMISTIC OFFLINE LOCKING WITH JDO AND HIBERNATE 495 USING VERSION
NUMBERS OR TIMESTAMPS 495 USING DETACHED OBJECTS 497 13.4 OPTIMISTIC
OFFLINE LOCKING WITH DETACHED OBJECTS EXAMPLE 50 L IMPLEMENTING THE
DOMAIN SERVICE 502 * IMPLEMENTING THE PERSISTENT DOMAIN CLASS 504 *
DETACHING AND ATTACHING ORDERS 505 13.5 THE PESSIMISTIC OFFLINE LOCK
PATTERN 508 MOTIVATION 508* USING THE PESSIMISTIC OFFLINE LOCK PATTERN
509 BENEFITS AND DRAWBACKS 510* WHEN TO USE THIS PATTERN 511 CONTENTS
XVII 13.6 PESSIMISTIC OFFLINE LOCKING DESIGN DECISIONS 511 DECIDING WHAT
TO LOCK 512 * DETERMINING WHEN TO LOCK AND UNLOCK THE DATA 512 *
CHOOSING THE TYPE OF LOCK 512 * IDENTIFYING THE LOCK OWNER 513 *
MAINTAINING THE LOCKS 513 * HANDLING LOCKING FAILURES 519 * USING
PESSIMISTIC OFFLINE LOCKING IN A DOMAIN MODEL 520 * IMPLEMENTING A LOCK
MANAGER WITH IBATIS 520 IMPLEMENTING THE DOMAIN SERVICE 522 * ADAPTING
THE OTHER USE CASES 529 13.7 SUMMARY 532 REFERENCES 535 INDEX 539
|
adam_txt |
POJOS IN ACTION DEVELOPING ENTERPRISE APPLICATIONS WITH LIGHTWEIGHT
FRAMEWORKS CHRIS RICHARDSON MANNING GREENWICH (74 W. LONG.) CONTENTS
PREFACE XIX ACKNOWLEDGMENTS XXI ABOUT THIS BOOK XXIII ABOUT THE TITLE
ABOUT THE COVER ILLUSTRATION XXX V PART 1 OVERVIEW OF POJOS AND
LIGHTWEIGHT FRAMEWORKS .». I DEVELOPING WITH POJOS: FASTER
AND EASIER 3 1.1 THE DISILLUSIONMENT WITH EJBS 5 A BRIEFHISTORY OFEJBS 5
* A TYPICALEJB 2 APPLICATION ARCHITECTURE 6 THE PROBLEMS WITH EJBS 7 *
EJB 3ISA STEP IN THE RIGHT DIRECTION 11 1.2 DEVELOPING WITH POJOS 12
USING AN OBJECT-ORIENTED DESIGN 14 * USINGPOJOS 15 * PERSISTING POJOS 16
* ELIMINATINGDTOS 18 * MAKINGPOJOS TRANSACTIONAL 19* CONFIGURING
APPLICATIONS WITH SPRING 25 DEPLOYING A POJO APPLICATION 27 * POJO
DESIGN SUMMARY 28 1.3 SUMMARY 30 1 IX X CONTENTS J2EE DESIGN DECISIONS
31 2.1 BUSINESS LOGIC AND DATABASE ACCESS DECISIONS 32 2.2 DECISION 1:
ORGANIZING THE BUSINESS LOGIC 35 USING A PROCEDURAL DESIGN 35 * USING AN
OBJECT-ORIENTED DESIGN 36 TABLE MODULE PATTERN 3 7 2.3 DECISION 2:
ENCAPSULATING THE BUSINESS LOGIC 37 EJB SESSION FACADE 38 * POJOFACADE
39 EXPOSED DOMAIN MODEL PATTERN 40 2.4 DECISION 3: ACCESSING THE
DATABASE 41 WHAT 'S WRONG WITH USINGFL)BC DIRECTLY ? 41 USING IBATIS 42
* USING A PERSISTENCEFRAMEWORK 43 2.5 DECISION 4: HANDLING CONCURRENCY
IN DATABASE TRANSACTIONS 44 ISOLATED DATABASE TRANSACTIONS 44 *
OPTIMISTIC LOCKING 45 PESSIMISTIC LOCKING 45 2.6 DECISION 5: HANDLING
CONCURRENCY IN LONG TRANSACTIONS 46 OPTIMISTIC OFFLINE LOCK PATTERN 46
PESSIMISTIC OFFLINE LOCK PATTERN 4 7 2.7 MAKING DESIGN DECISIONS ON A
PROJECT 48 OVERVIEW OF THE EXAMPLE APPLICATION 48 * MAKING HIGH-LEVEL
DESIGN DECISIONS 51 * MAKING USE CASE-LEVEL DECISIONS 53 2.8 SUMMARY 58
USING THE DOMAIN MODEL PATTERN 61 3.1 UNDERSTANDING THE DOMAIN MODEL
PATTERN 62 WHERE THE DOMAIN MODEL FITS INTO THE OVERALL ARCHITECTURE 63
AN EXAMPLE DOMAIN MODEL 64 * ROLES IN THE DOMAIN MODEL 66 3.2 DEVELOPING
A DOMAIN MODEL 68 IDENTIFYING CLASSES, ATTRIBUTES, AND RELATIONSHIPS 69
ADDING BEHAVIOR TO THE DOMAIN MODEL 69 CONTENTS 3.3 IMPLEMENTING A
DOMAIN MODEL: AN EXAMPLE 80 IMPLEMENTING A DOMAIN SERVICE METHOD 80 *
IMPLEMENTING A DOMAIN ENTITY METHOD 87 * SUMMARY OFTHE DESIGN 92 3.4
SUMMARY 93 OVERVIEW OF PERSISTING A DOMAIN MODEL 95 4.1 MAPPING AN
OBJECT MODEL TO A DATABASE 96 MAPPING CLASSES 97 *
MAPPINGOBJECTRELATIONSHIPS 99'MAPPING INHERITANCE 103 * MANAGING OBJECT
LIFECYCLES 107 PERSISTENT OBJECT IDENTITY 107 4.2 OVERVIEW OF ORM
FRAMEWORKS 108 WHY YOU DON 'T WANT TO PERSIST OBJECTS YOURSELF 109 * THE
KEY FEATURES OFAN ORMFRAMEWORK 109 * BENEFITS AND DRAWBACKS OF USING AN
ORMFRAMEWORK 114 4.3 OVERVIEW OFJDO AND HIBERNATE 117 DECLARATIVE
MAPPING BETWEEN THE OBJECT MODEL AND THE SCHEMA 117 API FOR CREATING,
READING, UPDATING, AND DELETING OBJECTS 118 QUERY LANGUAGE 119* SUPPORT
FOR TRANSACTIONS 120' LAZY AND EAGER LOADING 121 * OBJECT CACHING 121 *
DETACHED OBJECTS 124 HIBERNATE VS. JDO 124 4.4 DESIGNING REPOSITORIES
WITH SPRING 125 IMPLEMENTINGJDO AND HIBERNATE REPOSITORIES 125 * USING
THE SPRING ORM CLASSES 126 * MAKING REPOSITORIES EASIER TO TEST 129 4.5
TESTING A PERSISTENT DOMAIN MODEL 132 OBJECT/RELATIONAL TESTING
STRATEGIES 133 * TESTING AGAINST THE DATABASE 135 * TESTING WITHOUT THE
DATABASE 138 OVERVIEW OF ORMUNIT 140 4.6 PERFORMANCE TUNINGJDO AND
HIBERNATE 141 WITHOUT ANY TUNING 141 * CONFIGURING EAGER LOADING 142
USING A PROCESS-LEVEL CACHE 145* USING THE QUERY CACHE 145 4.7 THE
EXAMPLE SCHEMA 146 4.8 SUMMARY 148 PERSISTING A DOMAIN MODEL ZUITHJDO
2.0 149 5.1 JDO ISSUES AND LIMITATIONS 150 CONFIGURING JDO OBJECT
IDENTITY 151 * PERSISTING INTERFACES 155 USING THE JDO ENHANCER 158 5.2
PERSISTING A DOMAIN MODEL CLASS WITH JDO 159 WRITINGSS)0 PERSISTENCE
TESTS WITH ORMUNIT 159 * TESTING PERSISTENT JDO OBJECTS 164 * MAKING A
CLASS PERSISTENT 170 5.3 IMPLEMENTING THE JDO REPOSITORIES 173 WRITING A
MOCK OBJECT TEST FORFINDRESTAURANTSQ 174 * IMPLEMENTING
JDORESTAURANTREPOSITORYLMPL 178 * WRITING THE QUERY THATFINDS THE
RESTAURANTS 180* WRITING TESTS FWR A QUERY 180 5.4 JDO PERFORMANCE
TUNING 183 USING FETCH GROUPS TOOPTIMIZE OBJECT LOADING 184' USING A
PERSIS- TENCEMANAGERFACTORY-LEVEL CACHE 191 * USING A QUERY CACHE 193
5.5 SUMMARY 193 PERSISTING A DOMAIN MODEL WITH HIBERNATE 3 195 6.1
HIBERNATE ORM ISSUES 196 FIELDS OR PROPERTIES 196* HIBERNATE ENTITIES
AND COMPONENTS 198 CONFIGURING OBJECT IDENTITY 200 * USING THE CASCADE
ATTRIBUTE 205 PERSISTING INTERFACES 207 6.2 OTHER HIBERNATE ISSUES 209
EXCEPTION HANDLING 209 LAZY LOADING AND INHERITANCE HIERARCHIES 209 6.3
PERSISTING A DOMAIN MODEL CLASS USING HIBERNATE 212 WRITING HIBERNATE
PERSISTENCE TESTS WITH ORMUNIT 213* TESTING PERSISTENT HIBERNATE OBJECTS
217 * MAKING A CLASS PERSISTENT 224 6.4 IMPLEMENTING A REPOSITORY USING
HIBERNATE 228 WRITING A MOCK OBJECT TESTFORA REPOSITORY METHOD 228 *
IMPLEMENTING HIBERNATERESTAURANTREPOSITORYLMPL 231 * WRITING THE QUERY
THAT FINDS THE RESTAURANTS 232 * WRITING TESTS FOR A QUERY 233 6.5
HIBERNATE PERFORMANCE TUNING 234 USING EAGER LOADING 235 * USING A
PROCESS-LEVEL CACHE 240 USING A QUERY CACHE 241 6.6 SUMMARY 242
ENCAPSULATING THE BUSINESS LOGIC XVITH A POJOFACADE 243 7.1 OVERVIEW OF
A POJO FACADE 244 AN EXAMPLE POJO FACADE 245 * BENEFITS OFA POJO FACADE
247 DRAWBACKS OFA POJOFACADE 248 * WHEN TO USE A POJOFAGADE AND DETACHED
DOMAIN OBJECTS 250 CONTENTS XIII 7.2 POJO FACADE DESIGN DECISIONS 251
ENCAPSULATING THE DOMAIN OBJECTS 251 * DETACHING OBJECTS 254 EXCEPTIONS
VERSUS STATUS CODES 256 * MANAGING TRANSACTIONS AND CONNECTIONS 257 *
IMPLEMENTING SECURITY 261 SUPPORTING REMOTE CLIENTS 263 7.3 DESIGNING A
POJO FACADE'S INTERFACE 264 DETERMINING THE METHOD SIGNATURES 264 7.4
IMPLEMENTING THE POJO FAGADE 267 WRITING A TESTFOR A POJO FACADE METHOD
267 IMPLEMENTING UPDATERESTAURANT() 270 7.5 IMPLEMENTING A RESULT
FACTORY 272 IMPLEMENTING A HIBERNATE RESULT FACTORY 2 73 IMPLEMENTING
AJDO RESULT FACTORY 2 75 7.6 DEPLOYING THE POJO FAGADE WITH SPRING 279
GENERIC BEAN DEFINITIONS 280 * JDO-SPECIFIC BEAN DEFINITIONS 282
HIBERNATE BEAN DEFINITIONS 284 7.7 SUMMARY 286 USING AN EXPOSED DOMAIN
MODEL 289 8.1 OVERVIEW OF THE EXPOSED DOMAIN MODEL PATTERN 290 APPLYING
THE EXPOSED DOMAIN MODEL PATTERN 291 * BENEFITS AND DRAWBACKS OF THIS
PATTERN 293* WHEN TO USE THE EXPOSED DOMAIN MODEL PATTERN 294 8.2
MANAGING CONNECTIONS USING A SPRING FILTER 295 8.3 MANAGING TRANSACTIONS
296 MANAGING TRANSACTIONS IN THE PRESENTATION HER 297 MANAGING
TRANSACTIONS IN THE BUSINESS HER 299 8.4 AN EXAMPLE OF THE EXPOSED
DOMAIN MODEL PATTERN 304 SERVLET DESIGN 306 * JSPPAGE DESIGN 309
PLACEORDERSERVICE CONFIGURATION 310 8.5 USING JDO WITH AN EXPOSED DOMAIN
MODEL 311 DEFINING THE SPRING BEANS 311 CONFIGURING THE WEB APPLICATION
312 8 8.6 USING HIBERNATE WITH AN EXPOSED DOMAIN MODEL 314 DEFINING THE
SPRING BEANS 314 CONFIGURING THE WEB APPLICATION 314 8.7 SUMMARY 316
USING THE TRANSACTION SCRIPT PATTERN 317 9.1 OVERVIEW OF THE TRANSACTION
SCRIPT PATTERN 318 APPLYING THE TRANSACTION SCRIPT PATTERN 319 BENEFITS
AND DRAWBACKS OFTHE TRANSACTION SCRIPT PATTERN 322 WHEN TO USE THE
TRANSACTION SCRIPT PATTERN 324 9.2 IDENTIFYING THE TRANSACTION SCRIPTS
325 ANALYZING THE USE CASE 325 * ANALYZING THE USER INTERFACE DESIGN 326
* THE PLACEORDERTRANSACTIONSCRIPTS INTERFACE 327 9.3 IMPLEMENTING A POJO
TRANSACTION SCRIPT 329 WRITING A TESTFOR THE TRANSACTION SCRIPT 329
WRITING THE TRANSACTION SCRIPT 333 9.4 IMPLEMENTING THE DAOS WITH IBATIS
AND SPRING 337 OVERVIEW OF USING IBATIS WITH SPRING 339 IMPLEMENTING A
DAO METHOD 343 9.5 CONFIGURING THE TRANSACTION SCRIPTS USING SPRING 354
HOW SPRING MANAGESJDBC CONNECTIONS AND TRANSACTIONS 354 THE SPRING BEAN
DEFINITIONS 355 9.6 SUMMARY 358 IMPLEMENTING POJOS WITH EJB 3 360 10.1
OVERVIEW OF EJB 3 361 KEY IMPROVEMENTS IN EJB 3 362 * KEY LIMITATIONS
OFEJB 3 368 10.2 IMPLEMENTING A DOMAIN MODEL WITH EJB 3 372 MAPPING THE
CLASSES TO THE DATABASE 372' IMPLEMENTING REPOSITORIES 380' TESTING THE
PERSISTENT EJB DOMAIN MODEL 382 10.3 IMPLEMENTING A FACADE WITH EJB 3
385 TURNING A POJO FACADE INTO A SESSION BEAN 386 DETACHING OBJECTS 387
10.4 ASSEMBLING THE COMPONENTS 389 USING EJB DEPENDENCY INJECTION 390'
INTEGRATING SPRING AND EJB DEPENDENCY INJECTION 392' USING SPRING
DEPENDENCY INJECTION 398 CONTENTS XV 10.5 IMPLEMENTING OTHER PATTERNS
WITH EJB 3 400 IMPLEMENTING THE EXPOSED DOMAIN MODEL PATTERN 400 *
IMPLEMENT- ING THE TRANSAKTION SCRIPT PATTERN 401 * IMPLEMENTING DYNAMIC
PAGED QUERIES 401 * IMPLEMENTING THE CONCURRENCY PATTERNS 403 10.6
SUMMARY 403 PART 4 DEALING WITH DATABASES IMPLEMENTING DYNAMIC PAGED
QUERIES 407 11.1 KEY DESIGN ISSUES 408 IMPLEMENTING A PAGING MECHANISM
410 * GENERATING QUERIES DYNAMICALLY 413* IMPROVING THE PERFORMANCE OF
SQL QUERIES 414 11.2 IMPLEMENTING DYNAMIC PAGED QUERIES WITH IBATIS 418
USING QUERYFORLIST() TO SELECT THE ROWS 420 USING ROWNUM TO SELECT THE
ROWS 422 11.3 IMPLEMENTING PAGED QUERIES WITH JDO AND HIBERNATE 424
GENERATING HIBERNATE ANDSS)0 QUERIES DYNAMICALLY 426* LOADING THE DATA
WITH A SINGLE SELECT STATEMENT 428 * LOADING A SUBSET OF AN
OBJECT'SFIELDS 431 * WORKING WITH A DENORMALIZED SCHEMA 434 IMPLEMENTING
PAGING 435 11.4 A JDO DESIGN EXAMPLE 438 THE JDOORDERREPOSITORYLMPL
CLASS 439 THE EXECUTEFINDORDERSQUERY CLASS 441 11.5 A HIBERNATE DESIGN
EXAMPLE 442 THE HIBERNATEORDERREPOSITORYLMPL CLASS 443 THE
FINDORDERSHIBEMATECAUEBACK CLASS 444 11.6 USING JDO AND HIBERNATE NATIVE
SQL QUERIES 446 USINGFL)0 NATIVE SQL QUERIES 446 USING HIBERNATE SQL
QUERIES 448 11.7 SUMMARY 449 11 DATABASE TRANSACTIONS AND CONCURRENCY
451 12.1 HANDLING CONCURRENT ACCESS TO SHARED DATA 452 USINGFULLY
ISOLATED TRANSACTIONS 453 * OPTIMISTIC LOCKING 454 PESSIMISTIC LOCKING
458* USING A COMBINATION OF LOCKING MECHANISMS 461 12.2 HANDLING
CONCURRENT UPDATES IN A JDBC/IBATIS APPLICATION 462 DESIGN OVERVIEW 462*
USING OPTIMISTIC LOCKING 464* USING PES- SIMISTIC LOCKING 466 * USING
SERIALIZABLE OR REPEATABLE READ TRANSACTIONS 466 * SIGNALING CONCURRENT
UPDATE FAILURES 468 12.3 HANDLING CONCURRENT UPDATES WITH JDO AND
HIBERNATE 472 EXAMPLE DOMAIN MODEL DESIGN 472* HANDLING CONCURRENT
UPDATES WITH JDO 474 * HANDLING CONCURRENT UPDATES WITH HIBERNATE 478
12.4 RECOVERING FROM DATA CONCURRENCY FAILURES 483 USING AN AOP
INTERCEPTOR TO RETRY TRANSACTIONS 484 CONFIGURING THE AOP INTERCEPTOR
485 12.5 SUMMARY 486 USING OFFLINE LOCKING PATTEMS 488 13.1 THE NEED FOR
OFFLINE LOCKING 489 AN EXAMPLE OFAN EDIT-STYLE USE CASE 490 HANDLING
CONCURRENCY IN AN EDIT-STYLE USE CASE 490 13.2 OVERVIEW OF THE
OPTIMISTIC OFFLINE LOCK PATTERN 492 APPLYING THE OPTIMISTIC OFFLINE LOCK
PATTERN 493 * BENEFITS AND DRAWBACKS 494* WHEN TO USE THIS PATTERN 494
13.3 OPTIMISTIC OFFLINE LOCKING WITH JDO AND HIBERNATE 495 USING VERSION
NUMBERS OR TIMESTAMPS 495 USING DETACHED OBJECTS 497 13.4 OPTIMISTIC
OFFLINE LOCKING WITH DETACHED OBJECTS EXAMPLE 50 L IMPLEMENTING THE
DOMAIN SERVICE 502 * IMPLEMENTING THE PERSISTENT DOMAIN CLASS 504 *
DETACHING AND ATTACHING ORDERS 505 13.5 THE PESSIMISTIC OFFLINE LOCK
PATTERN 508 MOTIVATION 508* USING THE PESSIMISTIC OFFLINE LOCK PATTERN
509 BENEFITS AND DRAWBACKS 510* WHEN TO USE THIS PATTERN 511 CONTENTS
XVII 13.6 PESSIMISTIC OFFLINE LOCKING DESIGN DECISIONS 511 DECIDING WHAT
TO LOCK 512 * DETERMINING WHEN TO LOCK AND UNLOCK THE DATA 512 *
CHOOSING THE TYPE OF LOCK 512 * IDENTIFYING THE LOCK OWNER 513 *
MAINTAINING THE LOCKS 513 * HANDLING LOCKING FAILURES 519 * USING
PESSIMISTIC OFFLINE LOCKING IN A DOMAIN MODEL 520 * IMPLEMENTING A LOCK
MANAGER WITH IBATIS 520 IMPLEMENTING THE DOMAIN SERVICE 522 * ADAPTING
THE OTHER USE CASES 529 13.7 SUMMARY 532 REFERENCES 535 INDEX 539 |
any_adam_object | 1 |
any_adam_object_boolean | 1 |
author | Richardson, Chris 1985- |
author_GND | (DE-588)1105501469 |
author_facet | Richardson, Chris 1985- |
author_role | aut |
author_sort | Richardson, Chris 1985- |
author_variant | c r cr |
building | Verbundindex |
bvnumber | BV021783165 |
callnumber-first | Q - Science |
callnumber-label | QA76 |
callnumber-raw | QA76.73.J38 |
callnumber-search | QA76.73.J38 |
callnumber-sort | QA 276.73 J38 |
callnumber-subject | QA - Mathematics |
ctrlnum | (OCoLC)64118130 (DE-599)BVBBV021783165 |
dewey-full | 005.133 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.133 |
dewey-search | 005.133 |
dewey-sort | 15.133 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
discipline_str_mv | Informatik |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01411nam a2200373zc 4500</leader><controlfield tag="001">BV021783165</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20171023 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">061025s2006 xxud||| |||| 00||| eng d</controlfield><datafield tag="010" ind1=" " ind2=" "><subfield code="a">2006295422</subfield></datafield><datafield tag="015" ind1=" " ind2=" "><subfield code="a">GBA580279</subfield><subfield code="2">dnb</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">1932394583</subfield><subfield code="c">pbk.</subfield><subfield code="9">1-932394-58-3</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)64118130</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV021783165</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">aacr</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="044" ind1=" " ind2=" "><subfield code="a">xxu</subfield><subfield code="c">US</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-1051</subfield></datafield><datafield tag="050" ind1=" " ind2="0"><subfield code="a">QA76.73.J38</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.133</subfield><subfield code="2">22</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Richardson, Chris</subfield><subfield code="d">1985-</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)1105501469</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">POJOs in action</subfield><subfield code="b">developing enterprise applications with lightweight frameworks</subfield><subfield code="c">Chris Richardson</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Greenwich, CT</subfield><subfield code="b">Manning</subfield><subfield code="c">2006</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XXXII, 560 p.</subfield><subfield code="b">graph. Darst.</subfield><subfield code="c">24 cm</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="500" ind1=" " ind2=" "><subfield code="a">Includes bibliographical references (p. 535-537) and index</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Java (Computer program language)</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Computer software</subfield><subfield code="x">Development</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Object-oriented programming (Computer science)</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">GBV Datenaustausch</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014995916&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-014995916</subfield></datafield></record></collection> |
id | DE-604.BV021783165 |
illustrated | Illustrated |
index_date | 2024-07-02T15:42:13Z |
indexdate | 2024-07-09T20:43:59Z |
institution | BVB |
isbn | 1932394583 |
language | English |
lccn | 2006295422 |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-014995916 |
oclc_num | 64118130 |
open_access_boolean | |
owner | DE-1051 |
owner_facet | DE-1051 |
physical | XXXII, 560 p. graph. Darst. 24 cm |
publishDate | 2006 |
publishDateSearch | 2006 |
publishDateSort | 2006 |
publisher | Manning |
record_format | marc |
spelling | Richardson, Chris 1985- Verfasser (DE-588)1105501469 aut POJOs in action developing enterprise applications with lightweight frameworks Chris Richardson Greenwich, CT Manning 2006 XXXII, 560 p. graph. Darst. 24 cm txt rdacontent n rdamedia nc rdacarrier Includes bibliographical references (p. 535-537) and index Java (Computer program language) Computer software Development Object-oriented programming (Computer science) GBV Datenaustausch application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014995916&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Richardson, Chris 1985- POJOs in action developing enterprise applications with lightweight frameworks Java (Computer program language) Computer software Development Object-oriented programming (Computer science) |
title | POJOs in action developing enterprise applications with lightweight frameworks |
title_auth | POJOs in action developing enterprise applications with lightweight frameworks |
title_exact_search | POJOs in action developing enterprise applications with lightweight frameworks |
title_exact_search_txtP | POJOs in action developing enterprise applications with lightweight frameworks |
title_full | POJOs in action developing enterprise applications with lightweight frameworks Chris Richardson |
title_fullStr | POJOs in action developing enterprise applications with lightweight frameworks Chris Richardson |
title_full_unstemmed | POJOs in action developing enterprise applications with lightweight frameworks Chris Richardson |
title_short | POJOs in action |
title_sort | pojos in action developing enterprise applications with lightweight frameworks |
title_sub | developing enterprise applications with lightweight frameworks |
topic | Java (Computer program language) Computer software Development Object-oriented programming (Computer science) |
topic_facet | Java (Computer program language) Computer software Development Object-oriented programming (Computer science) |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014995916&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT richardsonchris pojosinactiondevelopingenterpriseapplicationswithlightweightframeworks |