Spring framework. Paweł Kędziora. Marek Lewandowski

Podobne dokumenty
Tworzenie aplikacji internetowych z wykorzystaniem szkieletu Spring. Paweł Ociepa, Paweł Pierzchała

Web frameworks do budowy aplikacji zgodnych z J2EE. Jacek Panachida

Podstawy frameworka Spring

Web frameworks do budowy aplikacji zgodnych z J2EE

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

Programowanie obiektowe

Zagadnienia projektowania aplikacji J2EE

SZKOLENIE TWORZENIE SYSTEMÓW

Warstwa prezentacji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

Szkolenie wycofane z oferty. Program szkolenia: Enterprise Java Beans 3.0/3.1

Spring Framework - wprowadzenie i zagadnienia zaawansowane

EJB 3.0 (Enterprise JavaBeans 3.0)

Zaawansowane Aplikacje Internetowe

1 Wprowadzenie do J2EE

Nowoczesne aplikacje internetowe oparte na Spring Framework, JSF, JPA i AJAX

Omówienie wzorców wykorzystywanych w Prism 5.0. Dominika Różycka

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Tworzenie komponentów logiki biznesowej i warstwy dostępu do danych w oparciu o EJB3.0/JPA lub EJB 3.1/JPA2

Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki Promotor dr inż. Paweł Figat

Wstęp [2/2] Wbrew częstemu przekonaniu, nie są one gotowymi rozwiązaniami, to tylko półprodukty rozwiązania.

Spring Framework. Profesjonalne tworzenie oprogramowania w Javie

Wykład 1 Inżynieria Oprogramowania

Architektura nowoczesnych aplikacji internetowych

IT Camp Junior Java Developer. Cel kursu

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Tomasz Dobek.

Szkolenie wycofane z oferty

Wprowadzenie do programowania aplikacji mobilnych

Zaawansowane aplikacje internetowe - laboratorium Architektura Spring.

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2

Załącznik 2 utworzenie projektu

Aplikacje internetowe oparte na kluczowych technologiach Java Enterprise(Servlet,JSP,JDBC, )

Forum Client - Spring in Swing

Kurs ASP.NET ASP.NET CORE APLIKACJE WEBOWE

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

Projektowanie obiektowe Wzorce projektowe. Wprowadzenie do wzorców projektowych

Program szkolenia: Symfony, nowoczesny framework PHP

Programowanie komponentowe 5

Wzorce projektowe i refaktoryzacja

EPI: Interfejs Graficzny Wykład nr 4 Podstawy frameworku Rails

Poznań Java User Group Java Server Faces. Wprowadzenie (Fakty i Mity)

EXSO-CORE - specyfikacja

Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej. Wstęp. Programowanie w Javie 2. mgr inż.

Zaawansowane aplikacje internetowe. Architektura Spring. wykład prowadzi Mikołaj Morzy. Architektura Spring

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

Programowanie MorphX Ax

Zagadnienia Programowania Obiektowego Agata Hejmej

Aplikacje Internetowe, Servlety, JSP i JDBC

Full Stack JavaScript z Angular i Nest. Dni: 5. Opis: Adresaci szkolenia

Obsługa transakcji rozproszonych Java. Marek Wojciechowski, Maciej Zakrzewicz Instytut Informatyki, Politechnika Poznańska

Programowanie obiektowe

Java Server Faces narzędzie do implementacji w wy prezentacji

Projektowanie obiektowe oprogramowania Wzorce architektury aplikacji (3) Wykład 11 Repository, Unit of Work Wiktor Zychla 2016

Programowanie zorientowane obiektowo. Mateusz Kołecki

Projektowanie obiektowe oprogramowania Wzorce architektury aplikacji (2) Wykład 10 Inversion of Control/Dependency Injection Wiktor Zychla 2014

Kompleksowe tworzenie aplikacji klasy Desktop z wykorzystaniem SWT i

Nowoczesne aplikacje internetowe oparte na Seam, JSF, EJB3, JPA, AJAX

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Analiza i projektowanie aplikacji Java

Zaawansowane Aplikacje Internetowe

Wzorce projektowe Java EE

Czym jest Ruby on Rails?

Projektowanie obiektowe Wzorce projektowe. Gang of Four Strukturalne wzorce projektowe (Wzorce interfejsów)

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy

Wprowadzenie. Spring 2.5. Norbert Potocki. 3 lutego Norbert Potocki Spring 2.5

OSGi Agata Hejmej

Projektowanie obiektowe oprogramowania Wzorce architektury aplikacji (2) Wykład 10 Inversion of Control Wiktor Zychla 2013

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

Przesłanki powstania książki... xvi Dla kogo przeznaczona jest ta książka?... xvi Co znajdziemy wewnątrz książki?... xvii

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

Zaawansowane programowanie obiektowe - wykład 5

SPRING FRAMEWORK. dr inż. Jakub Chłapioski

Programowanie w języku Java WYKŁAD

Architektura bezpiecznych aplikacji internetowych na platformie Java Enterprise Edition. Jakub Grabowski Warszawa,

JDBC w LoXiMie. Interfejs Java Database Connectivity dla systemu LoXiM. Adam Michalik 2008

Tworzenie aplikacji J2EE w oparciu o Spring Framework

A Zasady współpracy. Ocena rozwiązań punktów punktów punktów punktów punktów

Django : praktyczne tworzenie aplikacji sieciowych / Antonio Mele. Gliwice, cop Spis treści

Wzorce projektowe. dr inż. Marcin Pietroo

mgr inż. Michał Paluch

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

JAVA EE MODEL APLIKACJI. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska

Programowanie obiektowe

Java Enterprise Edition spotkanie nr 1. Sprawy organizacyjne, wprowadzenie

Wzorce projektowe cz. II. Wzorce projektowe cz. II 1/35

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Zaawansowane Aplikacje Internetowe

Wybrane działy Informatyki Stosowanej

Java Persistence API - zagadnienia zaawansowane

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów dziennych studiów II stopnia)

Receptury - niezbędnik projektanta i architekta

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych

Założenia projektowe dla zapytania ofertowego EAK_ZA_01/2015

Multi-wyszukiwarki. Mediacyjne Systemy Zapytań wprowadzenie. Architektury i technologie integracji danych Systemy Mediacyjne

Transkrypt:

Spring framework Paweł Kędziora Marek Lewandowski

Plan prezentacji Motywacje Architektura Spring DAO, dostęp do bazy danych, Web MVC Spring 2.0 Podsumowanie Spring framework 1

Plan prezentacji Motywacje Architektura Spring DAO, dostęp do bazy danych, Web MVC Spring 2.0 Podsumowanie Spring framework 2

Motywacje Po co komu framework? szybciej, taniej, lepiej. Po co komu kolejny framework? istniejące rozwiązania są zbyt proste (dużo dodatkowego nakładu pracy programisty), istniejące rozwiązania zbyt skomplikowane (przerost formy nad treścią). Spring framework 3

2003 Rod Johnson, Juergen Hoeller Spring framework 4

Spring według Johnsona Zintegrowana platforma oferująca solidną infrastrukturę dla podstawowych aspektów każdej aplikacji Minimalizacja stopnia złożoności platformy Nieinwazyjność Prostota testowania Łatwość rozbudowy Spring framework 5

Plan prezentacji Motywacje Architektura Spring DAO, dostęp do bazy danych, Web MVC Spring 2.0 Podsumowanie Spring framework 6

Architektura Spring Spring framework 7

Architektura - Core fundament framework a implementuje IoC (Inversion of Control) poprzez dependency injection wzorzec projektowy fabryka Bean (z wzorcem singleton) dostępny w postaci samodzielnej biblioteki udostępnia automatyczne dopasowywanie zależności Spring framework 8

Architektura - Context warstwa ponad Core zapewnia dostęp do Bean w stylu przypominającym JNDI walidacja wsparcie dla EJB wsparcie dla komunikatów (resource bundles, event propagation, resource loading, servlet container) Spring framework 9

Architektura - DAO abstrakcyjna warstwa JDBC wspiera programistę w procesie programowania komunikacji z bazą danych i obsługi błędów wsparcie dla zarządzania transakcjami Spring framework 10

Architektura - ORM zawiera warstwy wspierające popularne mapowania obiektowo relacyjne (JDO, Hibernate, ibatis) korzystanie z ORM umożliwia użycie mapowań w połączeniu z innymi cechami oferowanymi przez Spring (np. zarządzanie transakcjami) Spring framework 11

Architektura - AOP AOP (Aspect Oriented Programing) aspekt - wydzielona funkcjonalnie część programu, realizująca konkretne zadanie i koncentrująca się tylko na problemie, którego dotyczy (np. logowanie, monitorowanie aplikacji, zarządzanie transakcjami). AOP Alliance pozwalający definiować punkty złączeń (join points), punkty przecięć (pointcuts), przechwytywacze metod (method interceptors) Spring framework 12

Architektura - Web pakiet Web zawiera podstawowe cechy integracji aplikacji zorientowanych na działanie w ramach sieci WWW (web-oriented application context, servlet listeners) pakiet integrowany z Struts lub WebWork Spring framework 13

Architektura Web MVC implementacja Model View Controller dla aplikacji web. zapewnia oddzielenie interfejsu użytkownika od warstwy logicznej aplikacji z zachowaniem możliwości użycia pozostałych cech Spring Framework (np. walidacji). Spring framework 14

Plan prezentacji Motywacje Architektura Spring DAO, dostęp do bazy danych, Web MVC Spring 2.0 Podsumowanie Spring framework 15

DAO - szczegóły DAO (Data Access Object) ustandaryzowane ułatwienie w pracy z technologiami takimi jak: JDBC, Hibernate, JDO. przechwytywanie powstałych wyjątków niezależnie od stosowanej technologii. Spring framework 16

DAO - szczegóły manualna implementacja wzorca: implementacja fabryki obiektów DAO implementacja klasy przechwytującej wyjątki SQLException implementacja klas DAO Spring framework 17

DAO - szczegóły DAO w Spring zbiór abstrakcyjnych klas zawierających mechanizmy służące do wskazywania źródła danych oraz ustawienia konfiguracyjne specyfikowane dla różnych technologii: JdbcDaoSupport HibernateDaoSupport JdoDaoSupport JpaDaoSupport (od Spring 2.0) Spring framework 18

Plan prezentacji Motywacje Architektura Spring DAO, dostęp do bazy danych, Web MVC Spring 2.0 Podsumowanie Spring framework 19

Dostęp do bazy danych Spring dostarcza abstrakcyjny framework JDBC składający się z czterech pakietów: org.springframework.jdbc.core zawiera klasę JdbcTemplate, oraz towarzyszące klasy i interfejsy, org.springframework.jdbc.datasource zawiera klasy umożliwiające łatwy dostęp do danych oraz uruchamianie kodu JDBC poza kontenerem J2EE, org.springframework.jdbc.object zawiera klasy reprezentujące zapytania RDBMS, org.springframework.jdbc.support zawiera m.in. tłumaczenia SQLException. Spring framework 20

JdbcTemplate tworzy i zwalnia zasoby zamyka połączenie z bazą danych przechwytuje i przekazuje wyjątki SQLException wykonuje polecenia: query, update, wywołuje procedury składowane oraz tworzy zbiór wynikowy z iteratorem programista koncentruje się na zamodelowaniu kodu przygotowującego zapytanie oraz prezentującego wyniki Spring framework 21

DataSource działa jak fabryka połączeń (connection factory) pozwala oddzielić kod odpowiedzialny za przygotowanie połączenia i zarządzanie transakcjami od kodu aplikacji dwa sposoby podłączenia się do źródła danych: JNDI użycie implementacji dostarczonej przez Spring (np. DriverManagerDataSource): Spring framework 22

SQLExceptionTranslator interfejs, który może być zaimplementowany przez klasy tłumaczące pomiędzy SQLException a org.springframework.dao.dataaccessexception. domyślną implementacją jest SQLErrorCodeSQLExceptionTranslator, który stosuje następujące reguły dopasowania: użyj translacji zdefiniowanej przez programistę dopasuj kod błędu (uzyskany z SQLErrorCodesFactory) i wyszukaj odpowiedni komunikat metadanych bazy danych użyj translacji odwrotnej (fallback translation) domyślnie SQLStateSQLExceptionTranslator Spring framework 23

Wykonywanie zapytań zapytanie zwracające pojedynczą krotkę: Spring framework 24

Wykonywanie zapytań zapytanie zwracające zbiór krotek Spring framework 25

Wykonywanie zapytań modyfikacja danych: Spring framework 26

Modelowanie JDBC - Java pakiet org.springframwork.jdbc.object zawiera klasy umożliwiające zorientowany obiektowo dostęp do bazy danych. Wynik wykonywanego zapytania jest listą obiektów z kolumnami relacji mapowanymi na właściwości obiektu. dostępne operacje: query, update, delete, insert. Spring framework 27

MappingSqlQuery Spring framework 28

SqlUpdate Spring framework 29

StoredProcedure Spring framework 30

SqlFunction SqlFunction służy do obsługi zapytań zwracających jako wynik pojedynczą krotkę (np. select user(), select sysdate from dual ): Spring framework 31

Plan prezentacji Motywacje Architektura Spring DAO, dostęp do bazy danych, Web MVC Spring 2.0 Podsumowanie Spring framework 32

Spring Web Framework Charakterystyka Spring MVC Własna implementacja wzorca MVC Wygodne mapowanie i obsługa żądań Pełne wsparcie dla formularzy Możliwość integracji z wieloma technologiami budowania widoków Biblioteki znaczników Wsparcie dla istniejących framework ów Struts Tapestry WebWork JavaServerFaces.. Spring framework 33

Architektura Web MVC. Spring framework 34

Architektura Web MVC Łańcuch filtrów Mapowanie żądań na dane kontrolery Warstwa obiektów przechwytujących (ang.interceptors) Kontrolery Obiektry wyboru widoku (ang. view resolvers) Spring framework 35

Łańcuch filtrów(1) Filtry znajdują się poza Spring ApplicationContext Implementacja filtrów z wykorzystaniem obiektów klasy DelegatingFilterProxy Konfiguracja DelegatingFilterProxy w web.xml Konfiguracja właściwego filtra w pliku application-servlet.xml Spring framework 36

Łańcuch filtrów (2) Kofiguracja DelegatingFilterProxy (web.xml) Spring framework 37

Łańcuch filtrów (3) Konfiguracja Filtra jako spring-managed bean Spring framework 38

Filtry zastosowanie Logowanie i audytowanie Monitoring Filtry konwersji obrazów Filtry kompresji i kodowania danych Konwersje XSLT Inne.. Spring framework 39

Obiektry przechwytujące Spring framework 40

Obiektry przechwytujące(2) Implementacja metod: prehandle() wywołane przed akcją kontrolera posthandle() wywołane po akcji kontrolera, ale przed renderowaniem widoku, dostęp do ModelAndView aftercompletion() wywołane po wyrendererowaniu widoku. Dostęp do wyjątków występujących podczas przetwarzania żądania. Spring framework 41

Konfiguracja w application-servlet.xml Obiektry przechwytujące(3) Spring framework 42

Kontrolery AbstractController CommandControllers AbstractCommandController AbstractFormController SimpleFormController AbstractWizardFormController MultiActionController Spring framework 43

Spring MVC. Kontrolery(1) AbstractController rozszerzana przez pozostałe kontrolery czy wymaga sesji / czy synchronizować z sesją użytkownika caching directive / mimetype setting nadpisanie handlerequestinternal() Spring framework 44

Spring MVC. Kontrolery(2) CommandControllers AbstractCommandController wiązanie parametrów żądania ze wskazanym obiektem walidacja brak obslugi formularzy. AbstractFormController obsluga formularzy Command Object / walidacja pól Obsługa błednie wysyłanych formularzy (resubmission) Spring framework 45

CommandControllers c.d. SimpleFormController Command Object (formbackingobject()) nazwa widoku po przetworzeniu formularza (success). walidacja AbstractWizardFormController lista widoków wchodzących w skład wizarda status: finish, cancel, page_change Przechodzenie pomiędzy widokami w wizardzie (nawet gdy walidacja się nie powiodła dirty back, dirty forward ) Zmiana kolejności stron / omijanie wybranych stron bieżący widok zapisany w sesji Spring framework 46

Kontrolery(4) MultiActionController grupowanie funkcjonalności w jednym kontrolerze metody o formacie: ModelAndView actionname(httpservletrequest request,httpservletresponse response); wywoływanie metod poprzez rozwiązywanie nazw: ParameterMethodNameResolver (paramname) http://.../index.view?testparam=testit InternalPathNameResolver http://.../testing.view PropertiesMethodNameResolver (definiujemy mapowanie) http://.../test/welcome.html=doit Spring framework 47

Mapowanie żądań Umożliwia powiązanie przychodzących żądań z odpowiednimi kontrolerami/obiektami przechwytującymi. Uzyskanie nazwy przypisanego kontrolera, następnie listy ewentualnych obiektów przechwytujących. Rodzaje mapowań kontrolerów: BeanNameUrlHandlerMapping SimpleUrlHandlerMapping Spring framework 48

Obiekty wyboru widoków. Odwzorowanie pomiędzy nazwami logicznymi widoków a faktycznymi widokami. InternalResourceViewResolver (prefix, suffix) ResourceBundleViewResolver (plik.properties) Widoki - wspierane technologie: JSP & JSTL, Velocity templates, JSF, XSLT, FreeMarker, Tapestry Spring framework 49

Plan prezentacji Motywacje Architektura Spring DAO, dostęp do bazy danych, Web MVC Spring 2.0 Podsumowanie Spring framework 50

Spring 2.0 łatwiejsza konfiguracja kontenera IoC łatwiejsza konfiguracja AOP wsparcie dla aspektów @AspectJ łatwiejsza konfiguracja deklaratywnego zarządzania transakcjami wsparcie dla bean napisanych w językach innych niż Java Spring framework 51

Plan prezentacji Motywacje Architektura Spring DAO, dostęp do bazy danych, Web MVC Spring 2.0 Podsumowanie Spring framework 52

Podsumowanie bardzo dobry, kompleksowy framework do tworzenia aplikacji, prosty do opanowania dla programistów znających technologię JavaBeans, implementuje sprawdzone wzorce projektowe (singleton, MVC, DAO), zintegrowany z narzędziami mapowania O/R, wspiera programowanie aspektowe, bardzo młoda technologia, bardzo dobra pomoc (zarówno oficjalna dokumentacja jak i nieformalne grupy użytkowników, blogi, fora dyskusyjne). Spring framework 53

Dziękujemy za zapoznanie się z prezentacją! Prosimy o zadawanie pytań