Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Projektowanie warstwy serwera Spring podstawy. Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu.

Podobne prezentacje


Prezentacja na temat: "Projektowanie warstwy serwera Spring podstawy. Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu."— Zapis prezentacji:

1 Projektowanie warstwy serwera Spring podstawy

2 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 2 Plan wykładu Co to jest Spring? JavaBeen i wstrzykiwanie zależności

3 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 3 Historia Spring J2EE jest zbyt skomplikowane, –encyjne EJB są przestarzałe, złożone, nadużywane i prawie zbędne, –lepiej wykorzystywać interfejsy niż dziedziczenie, –komponenty JavaBean doskonale się nadają do tworzenia aplikacji, –paradygmat obiektowy jest ważniejszy niż implementacja, –obsługiwane wyjątki są nadużywane w aplikacjach Java, –kluczową rolę pełni możliwość niezależnego testowania poszczególnych modułów.

4 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 4 Co to jest Spring Wielowarstwowy szkielet aplikacji Java/J2EE zawierający –lekki kontener umożliwiający scentralizowane zarządzanie i łączenie komponentów JavaBean i POJO, –warstwę zarządzania transakcjami, –warstwę obsługi JDBC, –moduły umożliwiające integrację z Toplink, Hibernate, JDO i iBATIS za pomocą standardowych DAO, –pełnowartościowe środowisko obsługujące paradygmat programowania aspektowego AOP, –elastyczne środowisko do tworzenia aplikacji internetowych zgodnie z modelem MVC umożliwiające integrację ze Struts, WebWork,Tapestry;

5 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 5 Architektura Spring (I) Spring jest uzupełnieniem serwerów aplikacji –cały szkielet tworzony z perspektywy aplikacji a nie serwera Pełna modułowość szkieletu –można wykorzystać dowolną część Spring niezależnie od pozostałych Wysoka konfigurowalność projektów Nie uzależniamy kodu aplikacji od naszego API

6 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 6 Architektura Spring (II)

7 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 7 Składniki Spring (I) Kontener –podstawowa część architektury, głównym składnikiem jest BeanFactory zapewniająca mechanizm IoC (Inversion of Control) Spring context –plik konfiguracyjny dostarczający opis środowiska: JNDI, EJB, wielojęzyczność, walidacja, itp. SpringAOP –moduł implementujący mechanizm AOP (Aspect- Oriented Programming) i zapewniający transakcyjność przetwarzania

8 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 8 Składniki Spring (II) SpringDAO –hierarchia wyjątków ujednolicająca kody błędów różnych baz danych Spring ORM –szablony ułatwiające korzystanie z narzędzi ORM Spring Web module –integracja z Jakarta Struts i dostarczanie kontekstu aplikacjom webowym SpringMVC framework –implementacja MVC obsługująca szeroką gamę technologii

9 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 9 Podstawowe założenia Używamy POJO (plain old java object) Framework dostarcza kontener dla obiektów Framework zarządza tworzeniem obiektów Większość naszego kodu "nie wie" o istnieniu kontenera Duża elastyczność i konfigurowalność (silny XML!) Integracja i unifikacja dostępu do zewnętrznych zasobów i technologii (np. Baz danych) Projektowanie i programowanie przez interfejsy

10 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 10 Spring Bean Wszystko jest beanem! Beany to dowolne obiekty zarządzane przez kontener Springa. Beany nie muszą implementować żadnego interfejsu, ani rozszerzać żadnej klasy Beany zazwyczaj produkowane są przez fabrykę Springa. Beany definiujemy w kontekście aplikacji za pomocą XML lub properties, kodu Javy lub innych metod.

11 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 11 Deklaracja Bean Każdy bean ma unikalny identyfikator i klasę. Poniższa deklaracja XML definiuje najprostszy bean

12 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 12 Atrybuty Bean Najważniejsze atrybuty beanow deklarowane w XMLu: –id - identyfikator beana –class - klasa beana –abstract - czy jest to bean abstrakcyjny –autoWire - autoinjectowanie –singleton - czy bean jest singletonem –parent - nadklasa beana –init-method - metoda wywoływana przy inicjacji –lazy-init - czy inicjacja ma być leniwa –destroy-method - metoda wywoływana przy niszczeniu beana

13 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 13 Wstrzykiwanie zależności Użytkownik nie tworzy i nie łączy obiektów w aplikacji, lecz opisuje zależności między poszczególnymi klasami. Kontener jest w pełni odpowiedzialny za tworzenie obiektów i ich łączenie Metody implementacji wzorca IoC: –obiekty implementują specjalny interfejs do wyszukiwania obiektów zależnych –zależności są ustawiane w obiektach przez metody setter –zależności są ustawiane w obiektach przez konstruktor

14 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 14 Wstrzykiwanie zależności przez settery (I) public class PrzykladowyBean { private FirstBean beanOne; private SecondBean beanTwo; private int i; public void setBeanOne(FirstBean beanOne) { this.beanOne = beanOne; } public void setBeanTwo(SecondBean beanTwo) { this.beanTwo = beanTwo; } public void setIntegerProperty(int i) { this.i = i;}}

15 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 15 Wstrzykiwanie zależności przez settery (II)

16 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 16 Wstrzykiwanie zależności przez konstruktor (I) public class PrzykladowyBean { private FirstBean beanOne; private SecondBean beanTwo; private int i; public PrzykladowyBean( FirstBean firstBean, SecondBean secondBean, int i) { this.beanOne = firstBean; this.beanTwo = secondBean; this.i = i; }

17 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 17 Wstrzykiwanie zależności przez konstruktor (II)

18 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 18 Inicjalizacja Bean Marek Anna Jan Ewa

19 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 19 Inicjalizacja Bean - przykład (I) class Pokoj { String nazwa; String lokalizacja;.... } class Uzytkownik { String imie; Pokoj pokoj;.... }

20 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 20 Inicjalizacja Bean - przykład (II)

21 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 21 Metoda inicjalizacyjna Istnieje możliwość wskazani własnych metod do inicjalizacji oraz destrukcji beana. public class Foo { private boolean initialized = false; public void init() { initialized = true; }

22 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 22 Niszczenie Bean public class Foo { private boolean initialized = false; public void dest() { initialized = true; }

23 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 23 Fabryki komponentów (I) Podstawowa funkcjonalność Spring jest udostępniana przez pakiet org.springframework.beans. Pakiet zawiera infrastrukturę umożliwiającą wyszukiwanie i wiązanie komponentów JavaBean. –BeanFactory to główna fabryka dostarczająca komponentów JavaBean i zarządzająca tworzeniem i wiązaniem komponentów, –ApplicationContext to interfejs rozszerzający BeanFactory o obsługę komunikatów i internacjonalizacji, obsługę zdarzeń i możliwość rejestrowania nasłuchu zdarzeń

24 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 24 Fabryki komponentów (II) Spring nie nakłada na klasy POJO żadnych dodatkowych wymagań dotyczących rozszerzanych klas lub implementowanych interfejsów Dwa tryby tworzenia komponentów: –singleton: fabryka tworzy jedną instancję komponentu JavaBean o podanej nazwie, wszystkie żądania współdzielą jeden komponent, –prototype: w odpowiedzi na każde żądanie fabryka tworzy nową instancję komponentu JavaBean. Fabryki dostarczają mechanizmu zarządzania cyklem życia komponentu, interfejsy InitializingBean i DisposableBean umożliwiają podejmowanie określonych akcji podczas tworzenia i niszczenia komponentu

25 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 25 Fabryki komponentów (III) Sprawdzenie czy bean ma jakieś zależności. Jeśli ma to trzeba je stworzyć lub pobrać ich instancje, jeśli już zostały stworzone wcześniej. Wywołanie konstruktora lub statycznej metody z fabryki, aby dostać instancję. Ustawienie wartości pól poprzez setter – zgodnie z definicją w XMLu. Wywołanie metody inicjalizacyjnej (jeśli ją zdefiniowano).

26 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 26 Zasięg Bean Singleton(domyślny) Jedna instancja na kontener Prototype Każde żądanie tworzy nową instancję Request Session Global Session

27 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 27 Leniwa inicjalizacja Domyślnie Spring inicjuje wszystkie pola w momencie tworzenia obiektu. Można ustawić, żeby bean był inicjowany dopiero w momencie odwołania się do niego.

28 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 28 Przykładowy Bean dla kontrolera (I) uzytkownik00Dane uzytkownik01Lokalizacja uzytkownik02Sprzet

29 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 29 Przykładowy Bean dla kontrolera (II) Dane uzytkownika Lokalizacja Urzadzenia

30 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 30 Automatyczne private UzytkownikDAO uzytkownikDAO ;

31 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 31 Deklarowanie obiektów domenowych

32 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 32 Automatyczne tworzenie public class public public class UzytkownikListController


Pobierz ppt "Projektowanie warstwy serwera Spring podstawy. Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu."

Podobne prezentacje


Reklamy Google