spring-framework.-profesjonalne-tworzenie-oprogramowania-w-javie helion.pdf

(8174 KB) Pobierz
4
Spring Framework. Profesjonalne tworzenie oprogramowania w Javie
Kontener .................................................................................................................... 91
Fabryka komponentów ........................................................................................... 91
Kontekst aplikacji .................................................................................................. 93
Uruchamianie kontenera ........................................................................................ 95
Korzystanie komponentów uzyskiwanych z fabryki ..................................................... 97
Konfiguracja komponentów w formacie XML ............................................................. 98
Podstawowa definicja komponentu .......................................................................... 99
Definiowanie zależności komponentów .................................................................. 102
Zarządzanie cyklem życia komponentu ................................................................... 113
Abstrakcja dostępu do usług i zasobów ................................................................. 116
Wielokrotne wykorzystywanie tych samych definicji komponentów ............................ 122
Stosowanie postprocesorów do obsługi niestandardowych komponentów i kontenerów .. 126
Podsumowanie ......................................................................................................... 133
Rozdział 3. Zaawansowane mechanizmy kontenera ...........................................................................135
Abstrakcje dla niskopoziomowych zasobów ................................................................. 136
Kontekst aplikacji jako implementacja interfejsu ResourceLoader ............................ 136
Kontekst aplikacji jako źródło komunikatów ........................................................... 139
Zdarzenia aplikacji .................................................................................................... 142
Zarządzanie kontenerem ............................................................................................ 145
Ścieżki lokalizacji zasobów przekazywane do konstruktorów implementacji
interfejsu ApplicationContext .............................................................................. 145
Deklaratywne korzystanie z kontekstów aplikacji .................................................... 147
Podział definicji kontenera na wiele plików ............................................................. 149
Strategie obsługi modułów ................................................................................... 151
Singletony obsługujące dostęp do kontenera ......................................................... 154
Pomocnicze komponenty fabrykujące .......................................................................... 155
Komponent PropertyPathFactoryBean .................................................................... 155
Komponent FieldRetrievingFactoryBean ................................................................. 156
Komponent MethodInvokingFactoryBean ................................................................ 157
Edytory właściwości oferowane w ramach Springa ........................................................ 158
Strategie testowania ................................................................................................. 159
Testy jednostkowe ............................................................................................... 160
Testy wykorzystujące kontener Springa .................................................................. 163
Rozwiązania alternatywne względem konfiguracji w formacie XML ................................. 166
Definicje konfiguracji w plikach właściwości ........................................................... 166
Programowe definicje komponentów ...................................................................... 168
Pozostałe formaty ................................................................................................ 168
Materiały dodatkowe ................................................................................................. 169
Podsumowanie ......................................................................................................... 169
Rozdział 4. Spring i AOP ...........................................................................................................................171
Cele ......................................................................................................................... 171
Założenia ................................................................................................................. 173
Przykład ................................................................................................................... 173
Framework programowania aspektowego Springa ........................................................ 177
Łańcuch przechwytywania ..................................................................................... 178
Zalety i wady ....................................................................................................... 178
Rada .................................................................................................................. 180
Przecięcia ........................................................................................................... 186
Spis treści
5
Doradcy .............................................................................................................. 193
Integracja z kontenerem IoC Springa ..................................................................... 195
Analizowanie i zmiana stanu pośrednika w czasie wykonywania programu ................ 212
Programowe tworzenie pośredników ...................................................................... 213
Korzystanie z zaawansowanych funkcji Spring AOP ....................................................... 214
Źródła obiektów docelowych ................................................................................. 214
Wczesne kończenie łańcucha przechwytywania ....................................................... 221
Stosowanie wprowadzeń ...................................................................................... 221
Udostępnianie bieżącego pośrednika .................................................................... 224
Udostępnianie bieżącego egzemplarza interfejsu MethodInvocation ......................... 225
Zrozumienie typów pośredników ............................................................................ 226
Diagnozowanie i testowanie .................................................................................. 228
Rozmaitości ........................................................................................................ 231
Integracja z innymi frameworkami programowania aspektowego ................................... 234
Cele ................................................................................................................... 235
Integracja z narzędziem AspectJ ............................................................................ 235
AspectWerkz ....................................................................................................... 242
Materiały dodatkowe ................................................................................................. 243
Podsumowanie ......................................................................................................... 243
Rozdział 5. Obiekty DAO i framework Spring JDBC .............................................................................245
Wzorzec obiektów dostępu do danych ......................................................................... 246
Wprowadzenie do Spring JDBC ................................................................................... 248
Motywacja
problemy bezpośredniego korzystania z interfejsu JDBC ...................... 248
W czym może pomóc Spring? ................................................................................ 251
Prosty przykład .................................................................................................... 251
Budowa warstwy dostępu do danych dla przykładowej aplikacji ..................................... 253
Model danych stosowany w przykładowej aplikacji .................................................. 253
Źródło danych ...................................................................................................... 254
Tłumaczenie wyjątków .......................................................................................... 256
Operacje klasy JdbcTemplate ..................................................................................... 259
Stosowanie metod zwrotnych ................................................................................ 259
Metody pomocnicze klasy JdbcTemplate ................................................................ 261
Wykonywanie prostych zapytań za pośrednictwem klasy JdbcTemplate ..................... 262
Wykonywanie prostych aktualizacji za pośrednictwem klasy JdbcTemplate ................ 263
Zaawansowane zastosowania klasy JdbcTemplate ................................................. 264
Obsługa interfejsu RowSet ................................................................................... 266
Klasy obsługujące operacje na relacyjnych systemach zarządzania bazami danych ......... 267
Klasy SqlQuery i MappingSqlQuery ........................................................................ 268
Operacje wstawiania i aktualizacji realizowane za pomocą klasy SqlUpdate .............. 271
Aktualizowanie zbioru wynikowego za pomocą klasy UpdateSqlQuery ....................... 272
Generowanie kluczy głównych ............................................................................... 273
Uzyskiwanie kluczy wygenerowanych przez bazę danych .......................................... 274
Wywoływanie procedur składowanych .................................................................... 275
Zagadnienia zaawansowane ....................................................................................... 278
Uruchamianie Spring JDBC na serwerze aplikacji .................................................... 278
Stosowanie niestandardowych mechanizmów tłumaczenia wyjątków ........................ 280
Odczytywanie i zapisywanie danych obiektów LOB .................................................. 284
Aktualizacje wsadowe .......................................................................................... 289
Zaawansowane techniki korzystania z procedur składowanych ................................. 290
6
Spring Framework. Profesjonalne tworzenie oprogramowania w Javie
Zagadnienia dodatkowe ............................................................................................. 295
Wydajność .......................................................................................................... 295
Kiedy należy używać biblioteki JDBC,
a kiedy narzędzi odwzorowań obiektowo-relacyjnych? ........................................... 296
Wersje biblioteki JDBC i platformy J2EE ................................................................. 296
Podsumowanie ......................................................................................................... 297
Rozdział 6. Zarządzanie transakcjami i źródłami danych .................................................................299
Pojęcia podstawowe .................................................................................................. 299
Czym jest transakcja? .......................................................................................... 300
Właściwości ACID ................................................................................................ 300
Sterowanie współbieżnością ................................................................................. 303
Transakcje i platforma J2EE ....................................................................................... 303
Transakcje lokalne ............................................................................................... 304
Transakcje globalne (rozproszone) ........................................................................ 304
Propagowanie transakcji ....................................................................................... 305
Wyznaczanie granic pomiędzy transakcjami ............................................................ 305
Przykład obsługi transakcji w Springu .......................................................................... 306
Wprowadzenie do oferowanej przez Spring warstwy abstrakcji ponad transakcjami ......... 308
Przegląd możliwych opcji sterowania transakcjami .................................................. 310
Definicja transakcji .............................................................................................. 312
Status transakcji ................................................................................................. 314
Strategie wyznaczania granic transakcji ................................................................. 314
Strategie zarządzania transakcjami ....................................................................... 328
Deklaracje źródeł danych ........................................................................................... 338
Źródła lokalne bez puli ......................................................................................... 338
Źródła lokalne z pulą ............................................................................................ 339
JNDI ................................................................................................................... 340
Wybór pomiędzy lokalnym źródłem danych a źródłem danych JNDI ........................... 341
Podsumowanie ......................................................................................................... 341
Rozdział 7. Odwzorowania obiektowo-relacyjne ................................................................................343
Pojęcia podstawowe .................................................................................................. 344
Podstawy odwzorowań obiektowo-relacyjnych ......................................................... 345
Obiektowe języki zapytań ...................................................................................... 346
Przezroczyste utrwalanie ....................................................................................... 347
Kiedy należy korzystać z narzędzi odwzorowań obiektowo-relacyjnych? ..................... 348
Obsługa odwzorowań obiektowo-relacyjnych w Springu ................................................. 349
Obiekty dostępu do danych (DAO) ......................................................................... 349
Zarządzanie transakcjami ..................................................................................... 350
iBATIS SQL Maps ...................................................................................................... 351
Plik odwzorowania ............................................................................................... 352
Implementacja interfejsu DAO ............................................................................... 354
Konfiguracja w kontekście Springa ........................................................................ 356
Zarządzanie transakcjami ..................................................................................... 357
Podsumowanie analizy narzędzia iBATIS ................................................................ 359
Hibernate ................................................................................................................. 360
Plik odwzorowań .................................................................................................. 362
Implementacja interfejsu DAO ............................................................................... 363
Konfiguracja w kontekście Springa ........................................................................ 366
Zarządzanie transakcjami ..................................................................................... 370
Spis treści
7
Otwarta sesja w widoku ........................................................................................ 377
Obsługa obiektów BLOB i CLOB ............................................................................ 381
Hibernate: podsumowanie .................................................................................... 383
JDO ......................................................................................................................... 385
Cykl życia trwałego obiektu ................................................................................... 386
Implementacje interfejsów DAO ............................................................................ 387
Konfiguracja kontekstu aplikacji Springa ................................................................ 389
Zarządzanie transakcjami ..................................................................................... 391
Cykl życia egzemplarza PersistenceManager .......................................................... 392
Otwarty egzemplarz PersistenceManager w widoku ................................................. 393
Dialekt JDO ......................................................................................................... 396
Podsumowanie analizy technologii JDO .................................................................. 397
Pozostałe narzędzia odwzorowań obiektowo-relacyjnych ............................................... 399
Apache OJB ......................................................................................................... 399
TopLink ............................................................................................................... 401
Cayenne ............................................................................................................. 403
Specyfikacja JSR-220 ........................................................................................... 403
Podsumowanie ......................................................................................................... 404
Rozdział 8. Lekki framework zdalnego dostępu ..................................................................................407
Pojęcia podstawowe i zakres tematyczny rozdziału ....................................................... 408
Jednolity styl konfiguracji ........................................................................................... 410
Hessian i Burlap ....................................................................................................... 412
Uzyskiwanie dostępu do usługi ............................................................................. 414
Eksportowanie usługi ........................................................................................... 416
Obiekt wywołujący HTTP ............................................................................................. 417
Uzyskiwanie dostępu do usługi ............................................................................. 419
Eksportowanie usługi ........................................................................................... 420
Opcje konfiguracyjne ............................................................................................ 421
RMI ......................................................................................................................... 422
Uzyskiwanie dostępu do usługi ............................................................................. 424
Strategie wyszukiwania pieńków ........................................................................... 426
Eksportowanie usługi ........................................................................................... 428
Opcje konfiguracyjne ............................................................................................ 429
RMI-IIOP .............................................................................................................. 429
Usługi sieciowe przez JAX-RPC ................................................................................... 430
Uzyskiwanie dostępu do usługi ............................................................................. 432
Eksportowanie usługi ........................................................................................... 435
Niestandardowe odwzorowania typów .................................................................... 437
Podsumowanie ......................................................................................................... 439
Rozdział 9. Usługi wspomagające .........................................................................................................443
JMS ......................................................................................................................... 443
Wprowadzenie ..................................................................................................... 444
Cele obsługi JMS w Springu .................................................................................. 445
Dostęp do JMS za pomocą szablonu ..................................................................... 446
Obsługa wyjątków ................................................................................................ 449
Zarządzanie obiektem ConnectionFactory .............................................................. 449
Konwertery komunikatów ...................................................................................... 450
Zarządzanie miejscami docelowymi ....................................................................... 451
Zgłoś jeśli naruszono regulamin