Spring w praktyce - ebook
Spring w praktyce - ebook
Lektura obowiązkowa dla programistów Javy!
Spring Framework zrewolucjonizował sposób wytwarzania aplikacji w języku Java. Rzeczy trudne do wykonania stały się łatwe, a te łatwe w zasadzie zaczęły robić się same. Od pierwszej wersji ten framework jest cały czas rozwijany, a obecna, trzecia wersja, jest prawdopodobnie najczęściej wybieranym narzędziem do tworzenia aplikacji. Co sprawiło, że Spring zyskał taką popularność? Ogrom możliwości, świetna architektura, duża społeczność oraz ciągły rozwój i wsparcie dla nowych technologii to jego główne atuty.
W tej książce znajdziesz najlepsze techniki pracy ze Spring Framework w wersji 3. Przekonasz się, jak skutecznie wykorzystać potencjał Spring MVC. Dowiesz się, jak uwierzytelniać użytkowników, korzystać ze Spring Web Flow oraz budować usługi sieciowe. Ponadto przekonasz się, jak proste może być pisanie testów integracyjnych oraz korzystanie z narzędzi do mapowania obiektowo-relacyjnego. Książka ta jest doskonałą lekturą dla wszystkich programistów korzystających z języka Java. Z pewnością wzbogaci ona ich warsztat oraz umiejętności.
Dzięki tej książce:
- poznasz szkielet Spring w wersji 3
- wykorzystasz potencjał Spring MVC
- napiszesz skuteczne testy integracyjne
- stworzysz lepszą aplikację!
Najlepsze techniki pracy ze Spring 3!
Spis treści
Wprowadzenie (9)
Podziękowania (11)
O Spring (13)
O książce (15)
Rozdział 1. Przedstawiamy Spring - kontener wstrzykiwania zależności (19)
- 1.1. Czym jest Spring i dlaczego z niego korzystamy? (19)
- 1.1.1. Główne elementy biblioteki (20)
- 1.1.2. Dlaczego warto korzystać ze Spring? (22)
- 1.2. Elastyczna konfiguracja z użyciem wstrzykiwania zależności (23)
- 1.2.1. Konfigurowanie zależności w stary sposób (23)
- 1.2.2. Wstrzykiwanie zależności (24)
- 1.2.3. Odwrócenie kontroli (26)
- 1.3. Przykład prostej konfiguracji ziarna (28)
- 1.3.1. Tworzenie obiektów domeny (28)
- 1.3.2. Tworzenie interfejsu DAO konta oraz jego implementacji (29)
- 1.3.3. Konfigurowanie CsvAccountDao za pomocą Spring (31)
- 1.3.4. Tworzenie usługi wyszukującej konta niesolidnych dłużników (32)
- 1.3.5. Podłączanie AccountService do CsvAccountDao (33)
- 1.4. Łączenie ziaren za pomocą XML (35)
- 1.4.1. Przegląd przestrzeni nazw beans (35)
- 1.4.2. Zakres ziaren (39)
- 1.4.3. Przestrzeń nazw p (43)
- 1.4.4. Przestrzeń nazw c (44)
- 1.5. Automatyczne łączenie oraz skanowanie komponentów z użyciem adnotacji (46)
- 1.5.1. Adnotacja @Autowired (46)
- 1.5.2. Adnotacje stereotypów (49)
- 1.5.3. Skanowanie komponentów (50)
- 1.5.4. XML czy adnotacje? Co jest lepsze? (51)
- 1.6. Podsumowanie (52)
Rozdział 2. Trwałość danych, ORM i transakcje (53)
- 2.1. Dostęp do danych za pomocą JDBC (55)
- 2.2. Wyszukiwanie DataSource za pomocą JNDI (60)
- 2.3. Odwzorowanie obiektowo-relacyjne i transakcje z użyciem Hibernate (62)
- 2.4. Tworzenie warstwy dostępu do danych (73)
- 2.5. Użycie JPA (opcjonalnie) (79)
- 2.6. Przegląd Spring Data JPA (opcjonalnie) (83)
- 2.7. Podsumowanie (85)
Rozdział 3. Budowanie aplikacji WWW przy użyciu Spring Web MVC (87)
- 3.1. Podstawy Spring Web MVC (88)
- 3.1.1. Wzorzec "model-widok-kontroler" (MVC) (88)
- 3.1.2. Czym jest Spring Web MVC? (89)
- 3.1.3. Przegląd architektury Spring Web MVC (90)
- 3.2. Tworzenie pierwszej aplikacji Spring Web MVC (91)
- 3.2.1. Konfigurowanie aplikacji (91)
- 3.2.2. Prosty obiekt domeny (93)
- 3.2.3. Tworzenie prostego kontrolera (94)
- 3.2.4. Tworzenie widoku nadrzędnego i podrzędnego (96)
- 3.3. Obsługa i przetwarzanie formularzy (97)
- 3.3.1. Użycie obiektów domeny jako ziaren formularza (97)
- 3.3.2. Dodawanie kontrolera (98)
- 3.3.3. Dodawanie plików JSP formularza i podziękowania (100)
- 3.3.4. Aktualizowanie kontekstu aplikacji (102)
- 3.3.5. Dodanie mechanizmu przekierowania po przesłaniu (102)
- 3.3.6. Dodawanie białych list wiązania formularza (102)
- 3.3.7. Dodanie kontroli poprawności danych formularza (104)
- 3.4. Konfigurowanie Spring Web MVC - web.xml (104)
- 3.5. Konfigurowanie Spring Web MVC - kontekst aplikacji (106)
- 3.5.1. Konfiguracja HandlerMapping (107)
- 3.5.2. Konfigurowanie obiektów HandlerAdapter (112)
- 3.5.3. Konfigurowanie obiektów HandlerExceptionResolver (112)
- 3.5.4. Konfigurowanie obiektów ViewResolver (112)
- 3.5.5. Konfigurowanie obiektu RequestToViewNameTranslator (115)
- 3.5.6. Konfigurowanie innych obiektów rozpoznających (116)
- 3.6. Przegląd technologii Spring Mobile (116)
- 3.6.1. Anatomia żądania HTTP (117)
- 3.6.2. Wykrywanie urządzenia mobilnego za pomocą Spring Mobile (118)
- 3.6.3. Konfigurowanie Spring Mobile (119)
- 3.6.4. Obsługa właściwości witryny (122)
- 3.6.5. Użycie bibliotek JavaScript do poprawiania wyglądu i działania aplikacji (124)
- 3.6.6. Przełączanie do osobnej witryny mobilnej (126)
- 3.7. Technologie pokrewne (127)
- 3.7.1. Spring Web Flow (127)
- 3.7.2. Spring JavaScript (127)
- 3.7.3. Spring Faces (127)
- 3.7.4. Spring Security (127)
- 3.7.5. Usługi sieciowe w stylu REST (128)
- 3.8. Podsumowanie (128)
Rozdział 4. Proste formularze WWW (129)
- 4.1. Wyświetlanie formularzy (129)
- 4.2. Wyodrębnianie napisów z widoku (137)
- 4.3. Kontrola danych formularza (139)
- 4.4. Zapisywanie danych formularza (149)
- 4.5. Podsumowanie (159)
Rozdział 5. Rozszerzanie aplikacji Spring MVC za pomocą Web Flow (161)
- 5.1. Czy Spring Web Flow jest właściwym narzędziem? (162)
- 5.2. Przegląd Spring Web Flow (162)
- 5.2.1. Definiowanie przepływu (163)
- 5.2.2. Pięć typów stanów (164)
- 5.2.3. Przejścia pomiędzy stanami (167)
- 5.2.4. Dane przepływu (168)
- 5.3. Aplikacja demonstracyjna Klub piłkarski (171)
- 5.3.1. Instalacja i konfigurowanie SWF (172)
- 5.3.2. Tworzenie przepływów z różnymi typami stanów (178)
- 5.4. Użycie klas akcji (185)
- 5.5. Wiązanie danych formularza (189)
- 5.6. Kontrola poprawności formularzy (191)
- 5.7. Dziedziczenia przepływów i stanu (194)
- 5.8. Zabezpieczanie przepływów WWW (197)
- 5.9. Podsumowanie (201)
Rozdział 6. Uwierzytelnianie użytkowników (203)
- 6.1. Implementacja funkcji logowania, wylogowywania oraz zapamiętywania użytkownika (203)
- 6.2. Dostosowywanie strony logowania (212)
- 6.3. Implementacja zawsze widocznego formularza logowania (216)
- 6.4. Pobieranie danych użytkowników z bazy danych (219)
- 6.5. Modyfikowanie schematu bazy danych użytkowników (223)
- 6.6. Zastosowanie własnej usługi użytkowników oraz obiektu użytkownika (225)
- 6.7. Zabezpieczanie haseł użytkowników w bazie danych (233)
- 6.8. Automatyczne uwierzytelnianie użytkownika po rejestracji (239)
- 6.9. Podsumowanie (241)
Rozdział 7. Autoryzacja użytkowników (243)
- 7.1. Autoryzacja metod Java z użyciem poziomów autoryzacji, ról oraz uprawnień (245)
- 7.2. Autoryzacja widoków JSP z użyciem poziomów autoryzacji, ról oraz uprawnień (252)
- 7.3. Autoryzacja zasobów WWW z użyciem poziomów autoryzacji, ról oraz uprawnień (255)
- 7.4. Autoryzacja wywołań metod bazująca na ACL (258)
- 7.5. Wyświetlanie elementów nawigacyjnych oraz zawartości na podstawie ACL (277)
- 7.6. Podsumowanie (280)
Rozdział 8. Komunikacja z użytkownikami i klientami (281)
- 8.1. Tworzenie formularza kontaktowego (282)
- 8.2. Automatyczne generowanie odpowiedzi oraz powiadomień pocztowych (289)
- 8.3. Przyspieszanie automatycznego generowania wiadomości e-mail (296)
- 8.4. Subskrybowanie listy wysyłkowej przez użytkowników (301)
- 8.5. Publikowanie strumieni RSS z nowościami (311)
- 8.6. Podsumowanie (315)
Rozdział 9. Tworzenie silnika komentarzy z tekstem sformatowanym (317)
- 9.1. Tworzenie prostego silnika komentarzy (318)
- 9.2. Integracja silnika komentarzy z usługą dostarczania artykułów (327)
- 9.3. Dodanie obsługi tekstu sformatowanego do silnika komentarzy (336)
- 9.4. Testowanie filtra HTML (343)
- 9.5. Podsumowanie (346)
Rozdział 10. Testy integracyjne (347)
- 10.1. Konfigurowanie programu Maven dla testów integracyjnych (348)
- 10.2. Pisanie transakcyjnych testów ścieżki pozytywnej (354)
- 10.3. Sprawdzanie, czy testowany kod zgłasza wyjątek (368)
- 10.4. Tworzenie testów integracyjnych do weryfikowania wydajności (370)
- 10.5. Ignorowanie testu (374)
- 10.6. Uruchamianie testów integracyjnych na wbudowanej bazie danych (376)
- 10.7. Podsumowanie (381)
Rozdział 11. Budowanie bazy danych zarządzania konfiguracją (383)
- 11.1. Tworzenie prostego elementu konfiguracji (387)
- 11.2. Tworzenie związanych ze sobą elementów konfiguracji (393)
- 11.3. Dodawanie usługi sieciowej w stylu REST (405)
- 11.4. Modyfikowanie CMDB po udanej kompilacji (417)
- 11.5. Pozyskiwanie publicznych danych GitHub (422)
- 11.6. Pozyskiwanie prywatnych danych GitHub (427)
- 11.7. Szyfrowanie żetonów dostępu do zastosowań produkcyjnych (437)
- 11.8. Podsumowanie (439)
Rozdział 12. Budowanie silnika dostarczania artykułów (441)
- 12.1. Przechowywanie artykułów w repozytorium treści (442)
- 12.2. Tworzenie silnika dostarczania artykułów działającego w środowisku WWW (454)
- 12.3. Przechowywanie artykułów w repozytorium dokumentów (466)
- 12.4. Podsumowanie (471)
Rozdział 13. Integracja w przedsiębiorstwie (473)
- 13.1. Integracja aplikacji poprzez wspólną bazę danych (477)
- 13.2. Rozłączanie aplikacji za pomocą usług sieciowych w stylu REST (482)
- 13.3. Implementacja szyny komunikatów z użyciem RabbitMQ i Spring Integration (491)
- 13.4. Tworzenie zgłoszeń na podstawie magazynu IMAP (510)
- 13.5. Wysyłanie potwierdzeń po SMTP (516)
- 13.6. Podsumowanie (520)
Rozdział 14. Tworzenie biblioteki aktywności witryny bazującej na Spring (521)
- 14.1. Tworzenie szablonu bezpiecznika i wywołania zwrotnego (523)
- 14.2. Udostępnianie bezpieczników jako JMX MBean (537)
- 14.3. Obsługa konfiguracji bazującej na AOP (542)
- 14.4. Obsługa własnej przestrzeni nazw (549)
- 14.5. Obsługa konfiguracji korzystającej z adnotacji (557)
- 14.6. Podsumowanie (568)
Dodatek. Korzystanie z kodu przykładów (569)
- A.1. Konfiguracja IDE i środowiska (569)
- A.2. Organizacja kodu (569)
- A.3. Dostęp do kodu (570)
- A.4. Budowanie kodu (571)
- A.5. Konfigurowanie aplikacji (571)
- A.6. Uruchamianie aplikacji (573)
Skorowidz (575)
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-246-8187-7 |
Rozmiar pliku: | 5,9 MB |