java.-tworzenie-aplikacji-sieciowych-za-pomoca-springa,-hibernate-i-eclipse ebook.pdf

(17979 KB) Pobierz
Java. Tworzenie aplikacji
sieciowych za pomoc¹
Springa, Hibernate i Eclipse
Autor: Anil Hemrajani
T³umaczenie: Konrad Rymczak,
Grzegorz Skorczyñski, Ewa Bucka
ISBN: 978-83-246-0682-5
Tytu³ orygina³u : Agile Java Development
Format: B5, stron: 352
Tworzenie zaawansowanych projektów korporacyjnych w Javie
Poznaj sprawdzone metodologie i procesy
Naucz siê stosowaæ praktyczne technologie i narzêdzia
Twórz w Javie kompletne rozwi¹zania w optymalny sposób
Chcia³byœ tworzyæ rozbudowane aplikacje w jêzyku Java szybciej i w prostszy sposób?
Liczne narzêdzia i technologie budowania programów w Javie czêsto u³atwiaj¹ wykonywanie
niektórych zadañ, ale jednoczeœnie niepotrzebnie komplikuj¹ i wyd³u¿aj¹ proces
powstawania gotowych produktów. Jak dobraæ odpowiednie techniki i zastosowaæ
metodologiê, która usprawni i przyspieszy pracê? Niektórzy ju¿ to wiedz¹ — Ty te¿
mo¿esz skorzystaæ z ich doœwiadczeñ!
„Java. Tworzenie aplikacji sieciowych za pomoc¹ Spring, Hibernate i Eclipse” to
praktyczny poradnik opisuj¹cy wydajn¹ i sprawdzon¹ metodologiê szybkiego pisania
oprogramowania w jêzyku Java. Dziêki tej ksi¹¿ce poznasz techniki programowania
ekstremalnego oraz metodologii Agile i nauczysz siê stosowaæ je podczas pracy nad
programami. Dowiesz siê, jak zaprojektowaæ aplikacjê, przygotowaæ œrodowisko
i korzystaæ z wiersza poleceñ oraz proponowanego zestawu narzêdzi — platformy Spring,
mechanizmu odwzorowañ Hibernate i IDE Eclipse — co pozwoli Ci w prosty sposób u¿yæ
zaawansowanych rozwi¹zañ.
Techniki programowania ekstremalnego (XP)
Wprowadzenie do metodologii Agile
Korzystanie z platformy Spring
Utrwalanie obiektów za pomoc¹ Hibernate
Praca w IDE Eclipse
Debugowanie oprogramowania
Monitorowanie i profilowanie aplikacji
Refaktoryzacja kodu
Zwiêksz sw¹ wydajnoœæ dziêki zastosowaniu efektywnych procesów i narzêdzi do
tworzenia oprogramowania w jêzyku Java.
Wydawnictwo Helion
ul. Koœciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
781132408.051.png 781132408.053.png 781132408.054.png 781132408.055.png 781132408.001.png 781132408.002.png 781132408.003.png 781132408.004.png 781132408.005.png 781132408.006.png 781132408.007.png 781132408.008.png 781132408.009.png 781132408.010.png 781132408.011.png 781132408.012.png 781132408.013.png 781132408.014.png 781132408.015.png 781132408.016.png 781132408.017.png 781132408.018.png 781132408.019.png 781132408.020.png 781132408.021.png 781132408.022.png 781132408.023.png 781132408.024.png 781132408.025.png 781132408.026.png 781132408.027.png 781132408.028.png 781132408.029.png 781132408.030.png 781132408.031.png 781132408.032.png 781132408.033.png 781132408.034.png 781132408.035.png 781132408.036.png 781132408.037.png 781132408.038.png 781132408.039.png 781132408.040.png 781132408.041.png 781132408.042.png 781132408.043.png 781132408.044.png 781132408.045.png 781132408.046.png 781132408.047.png 781132408.048.png 781132408.049.png 781132408.050.png
 
Spis treści
5
Przedmowa .................................................................................... 13
O autorze ....................................................................................... 17
Podziękowania ............................................................................... 19
Wstęp ............................................................................................ 23
Część I Wprowadzenie .............................................................. 31
Rozdział 1. Wstęp ............................................................................................ 33
Co jest omawiane w tym rozdziale? ................................................................................ 34
Technologie użyte w tej książce ...................................................................................... 34
Technologie uruchomieniowe ................................................................................... 36
Narzędzia programistyczne ....................................................................................... 38
Metodologie wytwarzania oprogramowania użyte w tej książce .................................... 42
Podsumowanie ................................................................................................................. 43
Rekomendowane źródła .................................................................................................. 43
Rozdział 2. Przykładowa aplikacja: Time Expression .......................................... 45
Co jest omawiane w tym rozdziale? ................................................................................ 46
Wymagania biznesowe .................................................................................................... 47
Metodologie wytwarzania oprogramowania ................................................................... 48
Informacje wstępne o XP i AMDD ........................................................................... 48
Etap badań ................................................................................................................. 50
Etap planowania ........................................................................................................ 51
Etap wydania a iteracje (etapowe wytwarzanie oprogramowania) ........................... 52
Zakres projektu .......................................................................................................... 52
Utrzymanie ................................................................................................................ 53
Stosujemy XP i AMDD w naszej przykładowej aplikacji .............................................. 53
Model domenowy ...................................................................................................... 53
Prototyp interfejsu użytkownika (UI) ....................................................................... 53
Scenopis .................................................................................................................... 57
Historie użytkownika ................................................................................................ 57
Plan wydań (i iteracji) ............................................................................................... 60
Słownik ...................................................................................................................... 61
Architektura tablicowa .............................................................................................. 62
781132408.052.png
 
6
Java. Tworzenie aplikacji sieciowych za pomocą Springa, Hibernate i Eclipse
Uwaga na temat oprogramowania Wiki .......................................................................... 63
Podsumowanie ................................................................................................................. 63
Rekomendowane źródła .................................................................................................. 64
Część II Tworzymy przykładową aplikację ................................... 65
Rozdział 3. Metodologie XP i AMDD ................................................................. 67
Co jest omawiane w tym rozdziale? ................................................................................ 68
Projektowanie i wybór artefaktów ................................................................................... 69
Diagram architektury ....................................................................................................... 70
Od historii użytkownika do projektu ............................................................................... 71
Analizujemy klasy przy pomocy kart CRC ..................................................................... 71
Mapa przepływu aplikacji (artefakt domowej roboty) .................................................... 73
Technika uzupełniająca ............................................................................................. 74
Rozszerzamy mapę przepływu aplikacji o kolumny CRUD ..................................... 74
UML — diagram klas ...................................................................................................... 74
Diagramy pakietów UML ................................................................................................ 76
Struktura katalogów ......................................................................................................... 77
Przykładowe nazwy plików ............................................................................................. 77
Wytwarzanie oprogramowania od początku do końca .................................................... 78
Testy akceptacyjne .......................................................................................................... 78
Logowanie ................................................................................................................. 79
Lista kart pracy .......................................................................................................... 79
Wprowadź godziny ................................................................................................... 79
Inne rozważania ............................................................................................................... 79
Podsumowanie ................................................................................................................. 80
Rekomendowane źródła .................................................................................................. 82
Rozdział 4. Konfiguracja środowiska: JDK, Ant i JUnit ....................................... 83
Co jest omawiane w tym rozdziale? ................................................................................ 84
Java Platform Standard Edition Development Kit (JDK) ............................................... 84
Struktura katalogów ......................................................................................................... 85
Ant ................................................................................................................................... 86
Prosty plik budujący .................................................................................................. 86
Złożony plik budujący ............................................................................................... 87
JUnit ................................................................................................................................. 90
Samodzielnie uruchomiony JUnit ............................................................................. 91
JUnit z poziomu Eclipse ............................................................................................ 92
SimpleTest: sprawiamy, że wszystkie narzędzia współpracują razem ............................ 92
SimpleTest.java ......................................................................................................... 93
Rodzaje metod assert w JUnit ................................................................................... 93
Uruchamiamy SimpleTest (pojedynczy test JUnit) .................................................. 94
Uruchamiamy testy JUnit jako zadanie Anta ............................................................ 95
Wstępne testy i refaktoryzacja ......................................................................................... 96
Podsumowanie ................................................................................................................. 97
Rekomendowane źródła .................................................................................................. 98
Rozdział 5. Hibernate — zapewniamy trwałość obiektów ................................... 99
Co jest omawiane w tym rozdziale? .............................................................................. 100
Zarys odwzorowania obiektowo-relacyjnego
(Object-Relational Mapping — ORM) ....................................................................... 101
Relacje i liczebność ................................................................................................. 102
Tożsamość obiektu .................................................................................................. 103
Kaskada ................................................................................................................... 103
Spis treści
7
Odwzorowanie ........................................................................................................ 103
Obiekty w pamięci kontra obiekty trwałe ............................................................... 104
Projekt naszej przykładowej bazy danych ..................................................................... 104
Denormalizacja ........................................................................................................ 104
Konwencje nazewnicze ........................................................................................... 105
Uwagi do projektowania bazy danych .................................................................... 106
Skrypt DDL ............................................................................................................. 106
Gdzie w naszej aplikacji znajduje się HSQLDB i Hibernate? ...................................... 107
HSQLDB ....................................................................................................................... 108
Serwer HSQLDB i przydatne zadania Anta ............................................................ 108
HSQLDB Database Manager i SqlTool .................................................................. 109
Tryby persistent i in-memory w HSQLDB ............................................................. 109
Dołączamy HSQLDB do archiwum naszej aplikacji .............................................. 110
Pracujemy z Hibernate ................................................................................................... 110
Nie potrzeba DAO ani DTO .................................................................................... 111
Obsługiwane bazy danych ....................................................................................... 111
Hibernate i EJB 3.x ................................................................................................. 111
Przykładowy test konfiguracji Hibernate ................................................................ 112
Instalacja Hibernate ................................................................................................. 115
Podstawy pracy z Hibernate .................................................................................... 117
Tworzymy TimesheetManager.java, korzystając z Hibernate ................................ 120
Employee.* i DepartmentManager.java .................................................................. 124
Pliki wymagane w ścieżce klas ............................................................................... 124
Uruchamiamy zestaw testów przy pomocy Anta .................................................... 124
Usuwamy rekordy ................................................................................................... 125
Interfejs Criteria ...................................................................................................... 125
Obsługa wyjątków ................................................................................................... 126
Pozostałe funkcje Hibernate .......................................................................................... 127
Asocjacje ................................................................................................................. 127
Blokowanie obiektów (kontrola współbieżności) ................................................... 127
Jeszcze więcej Hibernate ......................................................................................... 129
Podsumowanie ............................................................................................................... 129
Rekomendowane źródła ................................................................................................ 130
Rozdział 6. Wprowadzenie do Spring Framework ............................................. 133
Co jest omawiane w tym rozdziale? .............................................................................. 135
Czym jest Spring? .......................................................................................................... 135
Pakiety Springa służące do rozwijania aplikacji ........................................................... 136
Pakiety Springa służące do wdrażania aplikacji ............................................................ 137
Przegląd modułów Springa ............................................................................................ 138
Spring Core ............................................................................................................. 138
Spring Context ......................................................................................................... 138
Spring AOP ............................................................................................................. 138
Spring DAO ............................................................................................................. 138
Spring ORM ............................................................................................................ 140
Gdzie w naszej architekturze jest miejsce Spring Framework? .................................... 140
Korzyści płynące z użycia Springa ................................................................................ 141
Główne koncepcje Springa ............................................................................................ 142
Wzorzec wstrzykiwania zależności (i kontenery IoC) ............................................ 143
Dwa style wstrzykiwana .......................................................................................... 143
Bean, BeanFactory i ApplicationContext ................................................................ 144
Edytory właściwości ............................................................................................... 146
Podprojekty Springa ...................................................................................................... 146
Podsumowanie ............................................................................................................... 147
Rekomendowane źródła ................................................................................................ 147
8
Java. Tworzenie aplikacji sieciowych za pomocą Springa, Hibernate i Eclipse
Rozdział 7. Framework Spring Web MVC ........................................................ 149
Co jest omawiane w tym rozdziale? .............................................................................. 150
Zalety Spring MVC ....................................................................................................... 150
Pojęcia związane ze Spring Web MVC ......................................................................... 152
Spring MVC a Java ................................................................................................. 152
Konfiguracja Spring MVC ...................................................................................... 155
Konfiguracja Springa dla Time Expression ................................................................... 156
Instalowanie kontenera serwletów (Apache Tomcat) ............................................. 157
Instalowanie Spring Framework ............................................................................. 158
Uruchomienie SpringTest ....................................................................................... 159
Konfiguracja Spring MVC ...................................................................................... 159
Budowanie interfejsu użytkownika z pomocą Springa ................................................. 160
Ekran: Lista kart pracy ............................................................................................ 160
Ekran: Wprowadź godziny ...................................................................................... 161
Kaskadowe arkusze stylów (Cascading Style Sheets — CSS) ...................................... 162
Ekran: Lista kart pracy — przykład kontrolera bez formularza .................................... 163
Konfiguracja krok po kroku .................................................................................... 163
Kodowanie krok po kroku ....................................................................................... 164
Ekran: Wprowadź godziny — przykład kontrolera formularza .................................... 168
Konfiguracja krok po kroku .................................................................................... 168
Kodowanie krok po kroku ....................................................................................... 170
Wiązanie do niestandardowych (niebiznesowych) obiektów polecenia ................. 174
DateUtil.java ........................................................................................................... 175
Dyrektywy taglib w JSP .......................................................................................... 175
Widok bez kontrolera .................................................................................................... 175
Obiekty przechwytujące w Springu ............................................................................... 175
Uwierzytelnianie w Time Expression ..................................................................... 176
Nasza przykładowa aplikacja — pierwsze uruchomienie ............................................. 177
Nowe biblioteki znaczników w Spring Framework 2.0 ................................................ 177
Słowo o Spring Web Flow i Portlet API ....................................................................... 180
Spring Web Flow .................................................................................................... 180
Spring Portlet API ................................................................................................... 180
Podsumowanie ............................................................................................................... 181
Rekomendowane źródła ................................................................................................ 181
Rozdział 8. Fenomen środowiska Eclipse ........................................................ 183
Co jest omawiane w tym rozdziale? .............................................................................. 184
Fundacja Eclipse ............................................................................................................ 185
Eclipse — platforma i projekty ..................................................................................... 186
Koncepcje związane z Eclipse SDK .............................................................................. 188
Workspace — przestrzeń projektów ....................................................................... 189
Workbench — obszar roboczy, perspektywy, edytory i widoki ............................. 189
Projekt ..................................................................................................................... 191
Pluginy .................................................................................................................... 192
Kreatory ................................................................................................................... 192
Instalacja Eclipse ........................................................................................................... 192
Konfiguracja Eclipse na potrzeby Time Expression ..................................................... 195
Java Development Tools (JDT) — narzędzia programistyczne dla Javy ...................... 200
Instalacja pluginów WTP — zestawu narzędzi do rozwoju aplikacji sieciowych ........ 208
Praca z Eclipse — rozwijamy Time Expression ........................................................... 209
Wbudowane pluginy JDT ........................................................................................ 210
Plugin z kategorii Data (dla HSQLDB) .................................................................. 212
Pluginy do obsługi serwerów (dla Tomcata) ........................................................... 212
Plugin Hibernate ...................................................................................................... 214
Zgłoś jeśli naruszono regulamin