Spring Framework. Wprowadzenie do tworzenia aplikacji. Wydanie II - Helion
Tytuł oryginału: Getting started with Spring Framework: a hands-on guide to begin developing applications using Spring Framework (Second Edition)
Tłumaczenie: Robert Górczyński
ISBN: 978-83-283-0929-6
stron: 480, Format: 168x237, okładka: miękka
Data wydania: 2015-09-11
Księgarnia: Helion
Cena książki: 48,30 zł (poprzednio: 69,00 zł)
Oszczędzasz: 30% (-20,70 zł)
Twoja przepustka do świata Spring Framework!
Pojawienie się na rynku Spring Framework było jednym z istotnych punktów zwrotnych w historii języka Java. Dzięki tej bibliotece tworzenie aplikacji w Javie stało się przyjemnością, a zadania, które do tej pory spędzały programistom sen z powiek, okazały się trywialne. Spring wciąż jest rozwijany, a każda kolejna wersja wprowadza powiew świeżości do świata Javy!Jeżeli chcesz poznać możliwości tego frameworka oraz wykorzystać drzemiący w nim potencjał w Twoim kolejnym projekcie, to trafiłeś na doskonałą książkę. Wprowadzi Cię ona bezboleśnie w świat odwróconej kontroli (Inversion of Control, w skrócie IoC), wstrzykiwania zależności oraz łatwego dostępu do danych i tworzenia aplikacji internetowych. Każda kolejna strona to bezcenna wiedza na temat tworzenia REST-owych interfejsów API, bezpieczeństwa aplikacji (Spring Security) oraz korzystania z usług JMS. Książka ta będzie świetnym wyborem, jeżeli chcesz poznać ten wyjątkowy szkielet!
Dzięki tej książce:
- poznasz możliwości Spring Framework
- zaznajomisz się z dostępnymi adnotacjami i skutkami ich zastosowania
- zbudujesz aplikacjÄ™ internetowÄ… w architekturze MVC
- skorzystasz z zaawansowanych mechanizmów bezpieczeństwa dzięki Spring Security
- błyskawicznie wykorzystasz potencjał drzemiący w Spring Framework
Najlepsze wprowadzenie do Spring Framework!
Osoby które kupowały "Spring Framework. Wprowadzenie do tworzenia aplikacji. Wydanie II", wybierały także:
- Wprowadzenie do Javy. Programowanie i struktury danych. Wydanie XII 193,23 zł, (59,90 zł -69%)
- Spring i Spring Boot. Kurs video. Testowanie aplikacji i bezpiecze 129,00 zł, (51,60 zł -60%)
- Metoda dziel i zwyci 89,00 zł, (35,60 zł -60%)
- JavaFX. Kurs video. Wzorce oraz typy generyczne 79,00 zł, (31,60 zł -60%)
- Platforma Xamarin. Kurs video. Poziom drugi. Zaawansowane techniki tworzenia aplikacji cross-platform 99,00 zł, (39,60 zł -60%)
Spis treści
Spring Framework. Wprowadzenie do tworzenia aplikacji. Wydanie II -- spis treści
Wprowadzenie (15)
Rozdział 1. Wprowadzenie do frameworku Spring (17)
- 1.1. Wprowadzenie (17)
- 1.2. Moduły frameworku Spring (17)
- 1.3. Kontener IoC (18)
- 1.4. Zalety stosowania frameworku Spring (21)
- Spójne podejÅ›cie w zakresie zarzÄ…dzania transakcjami lokalnymi i globalnymi (21)
- Deklaracyjne zarzÄ…dzanie transakcjami (23)
- Zapewnienie bezpieczeństwa (24)
- JMX (Java Management Extensions) (24)
- JMS (Java Message Service) (26)
- Buforowanie (27)
- 1.5. Prosta aplikacja Springa (28)
- Identyfikacja obiektów aplikacji i ich zależnoÅ›ci (28)
- Utworzenie klas POJO odpowiadajÄ…cych zidentyfikowanym obiektom aplikacji (29)
- Utworzenie metadanych konfiguracyjnych (30)
- Utworzenie egzemplarza kontenera Springa (35)
- Uzyskanie dostÄ™pu do obiektów aplikacji z poziomu egzemplarza kontenera Springa (36)
- 1.6. Frameworki zbudowane na bazie Springa (37)
- 1.7. Podsumowanie (38)
Rozdział 2. Podstawy frameworku Spring (39)
- 2.1. Wprowadzenie (39)
- 2.2. ReguÅ‚a projektowa o nazwie "podejÅ›cie oparte na programowaniu interfejsów" (39)
- Scenariusz: klasa zależna zawiera odwołanie do konkretnej klasy zależności (39)
- Scenariusz: klasa zależna zawiera odwołanie do interfejsu implementowanego przez zależność (40)
- Oferowana przez Spring obsługa podejścia opartego na programowaniu interfejsu (42)
- 2.3. Różne podejÅ›cia podczas tworzenia komponentów Springa (44)
- Utworzenie komponentu za pomocÄ… statycznej metody fabryki (44)
- Tworzenie komponentu za pomocÄ… metody fabryki egzemplarza (46)
- 2.4. Techniki wstrzykiwania zależności (47)
- Wstrzykiwanie zależności za pomocą metody typu setter (47)
- Wstrzykiwanie zależnoÅ›ci za pomocÄ… argumentów konstruktora (51)
- 2.5. Zasięg komponentu (54)
- Singleton (55)
- Prototyp (63)
- Wybór wÅ‚aÅ›ciwego zasiÄ™gu dla komponentu (64)
- 2.6. Podsumowanie (64)
RozdziaÅ‚ 3. Konfiguracja komponentów (65)
- 3.1. Wprowadzenie (65)
- 3.2. Dziedziczenie definicji komponentu (65)
- Przykład dziedziczenia definicji komponentu w aplikacji MyBank (65)
- Co jest dziedziczone? (68)
- 3.3. Dopasowanie argumentu konstruktora (73)
- Przekazywanie wartoÅ›ci i odwoÅ‚aÅ„ do komponentów za pomocÄ… elementu (73)
- Dopasowanie argumentu konstruktora na podstawie typu (74)
- Dopasowanie argumentu konstruktora na podstawie nazwy argumentu (79)
- 3.4. Konfiguracja różnego typu wÅ‚aÅ›ciwoÅ›ci komponentu i argumentów konstruktora (82)
- Wbudowane edytory właściwości (83)
- OkreÅ›lanie wartoÅ›ci dla różnych typów kolekcji (86)
- Definiowanie wartości dla tablic (92)
- DomyÅ›lne implementacje kolekcji dla elementów , i(92)
- 3.5. Wbudowane edytory właściwości (93)
- Edytor CustomCollectionEditor (93)
- Edytor CustomMapEditor (96)
- Edytor CustomDateEditor (96)
- 3.6. Rejestracja edytorów wÅ‚aÅ›ciwoÅ›ci w kontenerze Springa (97)
- Utworzenie implementacji PropertyEditorRegistrar (97)
- Konfiguracja klasy CustomEditorConfigurer (98)
- 3.7. ZwiÄ™zÅ‚e definicje komponentów dziÄ™ki użyciu przestrzeni nazw p oraz c (99)
- Przestrzeń nazw p (99)
- Przestrzeń nazw c (100)
- 3.8. Schemat util (103)
- Element (104)
- Element(105)
- Element (107)
- Element (109)
- Element (110)
- Element (111)
- 3.9. Interfejs FactoryBean (113)
- Aplikacja MyBank - przechowywanie zdarzeń w bazie danych (113)
- Aplikacja MyBank - przykład użycia interfejsu FactoryBean (115)
- Uzyskanie dostępu do egzemplarza FactoryBean (118)
- 3.10. Podsumowanie (120)
Rozdział 4. Wstrzykiwanie zależności (121)
- 4.1. Wprowadzenie (121)
- 4.2. Komponenty wewnętrzne (121)
- 4.3. Wyraźna kontrola kolejności inicjalizacji procesu za pomocą atrybutu depends-on (123)
- Aplikacja MyBank - zasugerowane zależności między komponentami (123)
- Problem niejawnej zależności (124)
- 4.4. ZależnoÅ›ci w postaci komponentów o zasiÄ™gu singleton i prototypu (129)
- Zależności komponentu o zasięgu singleton (129)
- Zależności komponentu o zasięgu prototypu (132)
- 4.5. Pobieranie w komponencie singleton nowego egzemplarza komponentu o zasięgu prototypu (135)
- Interfejs ApplicationContextAware (136)
- Element (138)
- Element (142)
- 4.6. Automatyczne wiązanie zależności (145)
- Wartość byType (146)
- Wartość constructor (147)
- Wartość byName (148)
- Wartości default i no (150)
- Uniedostępnienie komponentu dla funkcji automatycznego wiązania (150)
- Ograniczenia automatycznego wiÄ…zania (152)
- 4.7. Podsumowanie (153)
RozdziaÅ‚ 5. Dostosowanie komponentów i ich definicji (155)
- 5.1. Wprowadzenie (155)
- 5.2. Dostosowanie logiki inicjalizacji i usuwania komponentu (155)
- Wywołanie przez Spring metody czyszczącej wskazanej przez atrybut destroy-method (158)
- Metoda czyszcząca i komponent o zasięgu prototypu (160)
- OkreÅ›lenie domyÅ›lnych metod inicjalizacji i usuwania obiektu dla wszystkich komponentów (160)
- Interfejsy cyklu życiowego InitializingBean i DisposableBean (161)
- Adnotacje @PostConstruct i @PreDestroy wprowadzone w specyfikacji JSR 250 (161)
- 5.3. Użycie interfejsu BeanPostProcessor do pracy z nowo utworzonym egzemplarzem komponentu (163)
- Przykład użycia interfejsu BeanPostProcessor - weryfikacja egzemplarzy komponentu (165)
- Przykład BeanPostProcessor - rozwiązywanie zależności komponentu (168)
- Zachowanie BeanPostProcessor w przypadku komponentów implementujÄ…cych FactoryBeans (172)
- RequiredAnnotationBeanPostProcessor (174)
- DestructionAwareBeanPostProcessor (175)
- 5.4. Modyfikacja definicji komponentu za pomocÄ… BeanFactoryPostProcessor (176)
- Przykład użycia BeanFactoryPostProcessor (177)
- Komponent PropertySourcesPlaceholderConfigurer (182)
- Komponent PropertyOverrideConfigurer (187)
- 5.5. Podsumowanie (190)
Rozdział 6. Programowanie oparte na adnotacjach (191)
- 6.1. Wprowadzenie (191)
- 6.2. Identyfikacja komponentów Springa za pomocÄ… adnotacji @Component (191)
- 6.3. Adnotacja @Autowired, czyli automatyczne wiązanie zależności według ich typu (194)
- 6.4. Adnotacja @Qualifier pozwalająca na automatyczne wiązanie zależności według ich nazwy (198)
- 6.5. Adnotacje @Inject i @Named zdefiniowane przez specyfikacjÄ™ JSR 330 (199)
- 6.6. Zdefiniowana przez JSR 250 adnotacja @Resource (201)
- 6.7. Adnotacje @Scope, @Lazy, @DependsOn i @Primary (202)
- 6.8. UÅ‚atwienie konfiguracji komponentu za pomocÄ… adnotacji @Value (203)
- 6.9. Weryfikacja obiektów za pomocÄ… interfejsu Validator (207)
- 6.10. Określanie ograniczeń za pomocą adnotacji JSR 303 (211)
- Obsługa specyfikacji JSR 303 w Springu (212)
- 6.11. Programowa konfiguracja komponentów Springa za pomocÄ… adnotacji @Configuration i @Bean (216)
- 6.12. Podsumowanie (219)
RozdziaÅ‚ 7. WspóÅ‚praca z bazÄ… danych (221)
- 7.1. Wprowadzenie (221)
- 7.2. Wymagania aplikacji MyBank (221)
- 7.3. Utworzenie aplikacji MyBank opartej na module JDBC (222)
- Konfiguracja źródÅ‚a danych (223)
- Tworzenie obiektów DAO używajÄ…cych klas moduÅ‚u JDBC (224)
- 7.4. Utworzenie aplikacji MyBank z użyciem Hibernate (231)
- Konfiguracja SessionFactory (231)
- Utworzenie klas DAO używających do pracy z bazą danych API Hibernate (232)
- 7.5. ZarzÄ…dzanie transakcjami za pomocÄ… Springa (233)
- Wymagania aplikacji MyBank w zakresie zarzÄ…dzania transakcjami (233)
- Programowe zarzÄ…dzanie transakcjami (234)
- Deklaracyjne zarzÄ…dzanie transakcjami (238)
- Oferowana przez Spring obsługa JTA (241)
- 7.6. Podsumowanie (243)
Rozdział 8. Komunikaty, wiadomości e-mail, asynchroniczne wykonywanie metod i buforowanie w Springu (245)
- 8.1. Wprowadzenie (245)
- 8.2. Wymagania aplikacji MyBank (245)
- 8.3. WysyÅ‚anie komunikatów JMS (246)
- Konfiguracja brokera ActiveMQ do działania w trybie osadzonym (247)
- Konfiguracja JMS ConnectionFactory (247)
- WysyÅ‚anie komunikatów JMS za pomocÄ… klasy JmsTemplate (248)
- WysyÅ‚anie komunikatów JMS w transakcji (249)
- Dynamiczni odbiorcy komunikatów JMS i konfiguracja klasy JmsTemplate (253)
- Klasa JmsTemplate i konwersja komunikatu (254)
- 8.4. Odbieranie komunikatów JMS (255)
- Synchroniczne odbieranie komunikatów JMS za pomocÄ… klasy JmsTemplate (255)
- Asynchroniczne odbieranie komunikatów JMS za pomocÄ… kontenerów odbiorców komunikatów (255)
- 8.5. Wysyłanie wiadomości e-mail (258)
- 8.6. Harmonogram zadań i wykonywanie asynchroniczne (263)
- Interfejs TaskExecutor (263)
- Interfejs TaskScheduler (265)
- Adnotacje @Async i @Scheduled (267)
- 8.7. Buforowanie (269)
- Konfiguracja interfejsu CacheManager (271)
- Adnotacje buforowania @Cacheable, @CacheEvict i @CachePut (271)
- 8.8. Aplikacja MyBank (275)
- 8.9. Podsumowanie (277)
Rozdział 9. Programowanie zorientowane aspektowo (279)
- 9.1. Wprowadzenie (279)
- 9.2. Prosty przykład AOP (279)
- 9.3. Oferowany przez Spring framework AOP (282)
- Tworzenie proxy (283)
- Atrybut expose-proxy (284)
- 9.4. Wyrażenia punktu przecięcia (286)
- Adnotacja @Pointcut (286)
- Desygnatory execution i args (287)
- Desygnator bean (291)
- Desygnatory oparte na adnotacjach (292)
- 9.5. Typy rad (293)
- Rada before (293)
- Rada after returning (294)
- Rada after throwing (295)
- Rada after (296)
- Rada around (297)
- 9.6. Spring AOP, czyli styl schematu XML (298)
- Konfiguracja aspektu AOP (299)
- Konfiguracja rady (300)
- Powiązanie wyrażenia punktu przecięcia z radą (301)
- 9.7. Podsumowanie (302)
Rozdział 10. Podstawy modułu Spring Web MVC (303)
- 10.1. Wprowadzenie (303)
- 10.2. Struktura katalogów przykÅ‚adowych projektów (303)
- 10.3. Poznajemy przykładową aplikację (304)
- Plik HelloWorldController.java, czyli klasa kontrolera aplikacji sieciowej Hello World (305)
- Plik helloworld.js, czyli strona JSP wyświetlająca komunikat (306)
- Plik myapp-config.xml, czyli plik XML kontekstu aplikacji sieciowej (307)
- Plik web.xml, czyli deskryptor wdrożenia aplikacji sieciowej (308)
- 10.4. Serwlet DispatcherServlet (311)
- Uzyskanie dostÄ™pu do obiektów ServletContext i ServletConfig (313)
- 10.5. Opracowanie kontrolerów za pomocÄ… adnotacji @Controller i @RequestMapping (314)
- Opracowanie aplikacji sieciowej za pomocÄ… kontrolera oznaczonego adnotacjÄ… (314)
- 10.6. Wymagania aplikacji sieciowej MyBank (317)
- 10.7. Adnotacje Spring Web MVC: @RequestMapping i @RequestParam (318)
- Mapowanie żądaÅ„ na kontrolery lub metody kontrolerów za pomocÄ… adnotacji @RequestMapping (318)
- Argumenty metod oznaczonych adnotacjÄ… @RequestMapping (324)
- Typy wartości zwrotnych metod oznaczonych adnotacją @RequestMapping (325)
- Przekazanie parametrów żądania do metod kontrolera z użyciem adnotacji @RequestParam (326)
- 10.8. Weryfikacja (330)
- 10.9. ObsÅ‚uga wyjÄ…tków za pomocÄ… adnotacji @ExceptionHandler (333)
- 10.10. Wczytanie gÅ‚ównego pliku XML kontekstu aplikacji sieciowej (335)
- 10.11. Podsumowanie (335)
Rozdział 11. Weryfikacja i dołączanie danych w Spring Web MVC (337)
- 11.1. Wprowadzenie (337)
- 11.2. Dodawanie i pobieranie atrybutów modelu za pomocÄ… adnotacji @ModelAttribute (337)
- Dodanie atrybutów modelu za pomocÄ… adnotacji @ModelAttribute stosowane na poziomie metody (338)
- Pobieranie atrybutów modelu za pomocÄ… adnotacji @ModelAttribute (342)
- Przetwarzanie żądania i metody oznaczone adnotacją @ModelAttribute (343)
- Zachowanie argumentów metody oznaczonych adnotacjÄ… @ModelAttribute (345)
- Obiekt RequestToViewNameTranslator (346)
- 11.3. Buforowanie atrybutów modelu za pomocÄ… adnotacji @SessionAttributes (347)
- 11.4. Dołączanie danych (350)
- WebDataBinder, czyli doÅ‚Ä…czanie danych dla parametrów żądania sieciowego (352)
- Konfiguracja egzemplarza WebDataBinder (353)
- WÅ‚Ä…czenie lub wyÅ‚Ä…czenie poszczególnych wÅ‚aÅ›ciwoÅ›ci w procesie doÅ‚Ä…czania danych (358)
- Analiza bÅ‚Ä™dów doÅ‚Ä…czania danych i weryfikacji przechowywanych przez obiekt BindingResult (361)
- 11.5. Weryfikacja w Springu (362)
- Weryfikacja atrybutów modelu za pomocÄ… oferowanego przez Spring interfejsu Validator (363)
- Zdefiniowanie ograniczeń za pomocą adnotacji JSR 303 (366)
- Weryfikacja obiektu używającego adnotacji JSR 303 (367)
- 11.6. Biblioteka znaczników form (371)
- Obsługa HTML5 przez bibliotekę form (372)
- 11.7. Podsumowanie (374)
Rozdział 12. Tworzenie usług sieciowych typu RESTful za pomocą Spring Web MVC (375)
- 12.1. Wprowadzenie (375)
- 12.2. Usługa sieciowa do obsługi lokat (376)
- 12.3. Implementacja usługi sieciowej w stylu RESTful za pomocą Spring Web MVC (376)
- Format JSON (377)
- Implementacja usługi sieciowej FixedDepositWS (379)
- 12.4. Uzyskanie dostępu do usługi sieciowej w stylu RESTful za pomocą klasy RestTemplate (386)
- 12.5. Użycie HttpMessageConverter do konwersji obiektów Javy na żądania lub odpowiedzi HTTP i na odwrót (394)
- 12.6. Adnotacje @PathVariable i @MatrixVariable (395)
- 12.7. Podsumowanie (399)
RozdziaÅ‚ 13. WiÄ™cej o Spring Web MVC: internacjonalizacja, przesyÅ‚anie plików i przetwarzanie żądaÅ„ asynchronicznych (401)
- 13.1. Wprowadzenie (401)
- 13.2. Przetwarzanie żądaÅ„ za pomocÄ… procedur obsÅ‚ugi interceptorów (401)
- Implementacja i konfiguracja procedury obsÅ‚ugi interceptorów (401)
- 13.3. Internacjonalizacja za pomocÄ… paczek zasobów (404)
- Wymagania aplikacji sieciowej MyBank (404)
- Internacjonalizacja i lokalizacja aplikacji sieciowej MyBank (404)
- 13.4. Asynchroniczne przetwarzanie żądań (407)
- Konfiguracja asynchronicznego przetwarzania żądań (407)
- Zwrot obiektu Callable przez metodÄ™ oznaczonÄ… adnotacjÄ… @RequestMapping (408)
- Zwrot obiektu DeferredResult przez metodÄ™ oznaczonÄ… adnotacjÄ… @RequestMapping (409)
- Ustawienie domyślnego limitu czasu (416)
- Przechwytywanie żądań asynchronicznych (417)
- 13.5. Obsługa konwersji typu i formatowania (417)
- Utworzenie własnej implementacji interfejsu Converter (418)
- Konfiguracja i użycie własnej implementacji interfejsu Converter (418)
- Tworzenie własnej implementacji Formatter (420)
- Konfiguracja własnej implementacji Formatter (422)
- Utworzenie implementacji AnnotationFormatterFactory do formatowania jedynie właściwości oznaczonych adnotacją @AmountFormat (422)
- Konfiguracja implementacji AnnotationFormatterFactory (423)
- 13.6. ObsÅ‚uga przekazywania plików w Spring Web MVC (425)
- Przekazywanie plików za pomocÄ… implementacji CommonsMultipartResolver (425)
- Przekazywanie plików za pomocÄ… StandardServletMultipartResolver (427)
- 13.7. Podsumowanie (428)
Rozdział 14. Zabezpieczanie aplikacji za pomocą Spring Security (429)
- 14.1. Wprowadzenie (429)
- 14.2. Wymagania aplikacji sieciowej MyBank w zakresie bezpieczeństwa (429)
- 14.3. Zabezpieczanie aplikacji MyBank za pomocÄ… frameworku Spring Security (431)
- Konfiguracja zabezpieczeń dla żądań sieciowych (431)
- Konfiguracja uwierzytelniania (434)
- Zabezpieczenie zawartoÅ›ci strony JSP przez użycie oferowanej przez Spring Security biblioteki znaczników (435)
- Zabezpieczanie metod (436)
- 14.4. Zabezpieczanie egzemplarzy FixedDepositDetails za pomocą modułu ACL (440)
- Wdrożenie i użycie projektu ch14-bankapp-db-security (440)
- Tabele bazy danych przeznaczone do przechowywania informacji o listach ACL i użytkownikach (442)
- Uwierzytelnianie użytkownika (446)
- Zabezpieczenie żądań sieciowych (447)
- Konfiguracja JdbcMutableAclService (449)
- Konfiguracja zabezpieczeń na poziomie metody (452)
- Bezpieczeństwo egzemplarza obiektu domeny (453)
- Programowe zarzÄ…dzanie informacjami ACL (455)
- Egzemplarz MutableAcl i bezpieczeństwo (458)
- 14.5. Podsumowanie (459)
Dodatek A. Import i wdrożenie przykÅ‚adowych projektów w Eclipse IDE (lub IntelliJ IDEA) (461)
- A.1. Przygotowanie środowiska pracy (461)
- A.2. Import przykładowego projektu do Eclipse IDE (lub IntelliJ IDEA) (461)
- Import przykładowego projektu (462)
- Konfiguracja zmiennej M2_REPO w Eclipse IDE (463)
- A.3. Konfiguracja Eclipse IDE do pracy z serwerem Tomcat 7 (463)
- A.4. Wdrożenie projektu sieciowego w serwerze Tomcat 7 (465)
- Uruchomienie serwera Tomcat 7 w trybie osadzonym (465)
Skorowidz (467)