SPRING FRAMEWORK. dr inż. Jakub Chłapioski



Podobne dokumenty
Tomasz Dobek.

Zaawansowane Aplikacje Internetowe

Podstawy frameworka Spring

AKADEMIA GÓRNICZO-HUTNICZA Wydział Elektrotechniki, Automatyki, Elektroniki i Informatyki

Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin

Mapowanie obiektowo-relacyjne z wykorzystaniem Hibernate

Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom.

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

Podejście obiektowe do relacyjnych baz danych Hibernate.

EJB 3.0 & JBoss Seam. 25 kwietnia 2007 Jacek Gerbszt 1

Modele komponentowe SCA, OSGi, Distributed OSGi i OSGi Enterprise a Java EE

Zaawansowane Aplikacje Internetowe

1. Model ACID. 2. Deklaratywne zarządzanie transakcjami, atrybuty transakcji. 3. Propagacja transakcji. transakcje rozproszone, propagacja kontekstu

Receptury projektowe niezbędnik początkującego architekta

mgr inż. Michał Paluch

Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ

Tworzenie aplikacji J2EE w oparciu o Spring Framework

Bazy danych tworzenie aplikacji bazodanowych ORM / JPA

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

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1)

Rola EJB na platformie Java EE. Enterprise JavaBeans (EJB)

Zaawansowane Aplikacje Internetowe

Remote Method Invocation 17 listopada 2010

Podejście obiektowe do budowy systemów rozproszonych

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

Budowa aplikacji w technologii. Enterprise JavaBeans. Maciej Zakrzewicz PLOUG

Programowanie obiektowe

Aplikacje w środowisku Java

Zaawansowane Aplikacje Internetowe

Gdzie jest moja tabela?

NHibernate Hibernate dla platformy.net. Hibernate posiada także dużą społeczność, zatem nietrudno uzyskać jakieś wsparcie w przypadku problemów.

Metody dostępu do danych

BEAN VALIDATION. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska

Plan prezentacji. Budowa aplikacji w technologii Enterprise JavaBeans. Przegląd architektur: CORBA. Cele budowy aplikacji rozproszonych

Pico. Wstęp do kontenerów IoC.

Enterprise JavaBeans

Pakiety i interfejsy. Tomasz Borzyszkowski

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

Programowanie obiektowe

Podejście obiektowe do budowy systemów rozproszonych

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

mgr inż. Michał Paluch

Remote Method Invocation 17 listopada rozproszonych. Dariusz Wawrzyniak (IIPP) 1

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Enterprise JavaBeans (EJB)

Wywoływanie metod zdalnych

Spring. Uwaga: Jeśli ta perspektywa nie jest dostępna, należy doinstalować wtyczkę Database Development (Help Install New Software)

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

Java podstawy jęyka. Wykład 2. Klasy abstrakcyjne, Interfejsy, Klasy wewnętrzne, Anonimowe klasy wewnętrzne.

Programowanie wielowarstwowe i komponentowe

WSNHiD, Programowanie 2, Lab. 3. Trwałość danych

Enterprise JavaBeans. 1. Architektura EJB: komponenty encyjne, komponenty sesyjne, komponenty sterowane komunikatami. 2. Kontenery EJB JBoss.

Java Server Faces narzędzie do implementacji w wy prezentacji

Usługa TimerService

Polimorfizm. dr Jarosław Skaruz

EJB 2.x oraz zmiany w standardzie dla EJB 3.0. Michał Stanek

Programowanie urządzeń mobilnych w systemie Android. Ćwiczenie 7 Wykorzystanie układu LinearLayout

Zaawansowane programowanie w języku C++ Programowanie obiektowe

Plik pobrano z Tytuł: Wzorce projektowe, cz. 2 Strategy Ostatnia aktualizacja:

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Automatyczne generowanie kodu. 4Developers, 26 marca 2010

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Programowanie obiektowe

Kontenery IoC dla Java Guice 3.0

Kurs programowania aplikacji bazodanowych

Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej

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

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Programowanie obiektowe

Java i bazy danych. 1. JDBC podstawy, transakcje. 2. Mapowanie relacyjno obiektowe. Hibernate, przykład.

Aplikacje internetowe i rozproszone - laboratorium

Wzorce logiki dziedziny

KLASY, INTERFEJSY, ITP

Współbieżność w środowisku Java

akademia androida Service, BroadcastReceiver, ContentProvider część IV

Plan wykładu CORBA. Cechy aplikacji rozproszonych. Aplikacje rozproszone

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017

Enterprise JavaBeans 3.0

Komponenty sterowane komunikatami

NHibernate. Narzędzie mapowania obiektowo - relacyjnego

Wielowątkowość. Programowanie w środowisku rozproszonym. Wykład 1.

Aplikacje RMI Lab4

Wywoływanie metod zdalnych

Programowanie obiektowe

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

1 Wprowadzenie do J2EE

Zaawansowane programowanie w języku C++ Funkcje uogólnione - wzorce

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

2) W wyświetlonym oknie należy zaznaczyć chęć utworzenia nowej aplikacji (wygląd okna może się różnić od powyższego); kliknąć OK

Tworzenie i wykorzystanie usług

Java wybrane technologie

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

EJB 3.0 (Enterprise JavaBeans 3.0)

public - może być używana w kodzie poza klasą, jedna klasa ModyfikatorKlasy może być kombinacją wyrażeń:

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

Klasy abstrakcyjne, interfejsy i polimorfizm

Zaawansowane aplikacje internetowe

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Zaawansowane Techniki Bazodanowe

Podstawowe informacje o technologii Java Persistence API - przykład

Transkrypt:

SPRING FRAMEWORK Katedra Mikroelektroniki i Technik Informatycznych Politechniki Łódzkiej ul. Wólczanska 221/223 budynek B18, 90-924 Łódź dr inż. Jakub Chłapioski

3. Spring Data Access

Zarządzanie transakcjami 3 Spring umożliwia zarządzanie transakcjami w oparciu o spójny i jednolity model z wykorzystaniem różnych implementacji (np. JTA, JDBC, Hibernate, JPA, JDO) Możliwe jest deklaratywne definiowanie kodu transakcyjnego Transakcyjnośd opiera się w Spring na implementacjach interfejsu PlatformTransactionManger public interface PlatformTransactionManager { } TransactionStatus gettransaction(transactiondefinition definition) throws TransactionException; void commit(transactionstatus status) throws TransactionException; void rollback(transactionstatus status) throws TransactionException;

Zarządzanie transakcjami (2) 4 Interfejs TransactionDefinition zawiera metody określające: Poziom izolacji (isolation) Propagację (propagation) Maksymalny czas trwania (timeout) Czy transakcja tylko odczytuje dane (read-only) Interfejs TransactionStatus określa stan transakcji

Zarządzanie transakcjami (3) 5 W zależności od sposobu dostępu do danych stosuje się różne implementacje PlatformTransactionManager DataSourceTransactionManager dla JDBC JtaTransactionManager dla JTA HibernateTransactionManager dla Hibernate itd.

6 Deklaratywne definiowanie transakcji Przykład deklaracji w pliku XML <tx:advice id="txadvice" transaction-manager="txmanager"> <tx:attributes> <tx:method name="get*" read-only="true"/> <tx:method name="*"/> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut id="metodaserwisowa" expression="execution(* example.service.*service.*(..))"/> <aop:advisor advice-ref="txadvice" pointcut-ref="metodaserwisowa"/> </aop:config> <bean id="txmanager" class="org.springframework.jdbc.datasource.datasourcetransactionmanager"> <property name="datasource" ref="datasource"/> </bean> <bean id="datasource" class="org.apache.commons.dbcp.basicdatasource" destroy-method="close">... </bean>

Deklaratywne definiowanie transakcji (2) 7 Przykład deklaracji przy użyciu @Transactional <tx:annotation-driven transaction-manager="txmanager"/> @Transactional(propagation=Propagation.REQUIRED) public class OsobaServiceImpl implements OsobaService { } @Transactional(readOnly=true) public Osoba get(long id); public void save(osoba osoba);

8 Mechanizm transakcji

Propagacja transakcji 9 Required - transakcja jest wymagana dla wykonania metody, jeżeli metody transakcyjne wywołują się wzajemnie, cały kod będzie wykonany w obrębie tej samej transakcji. RequiresNew - dla wykonania danej metody konieczne jest uruchomienie nowej transakcji Nested - wykorzystanie jednej transakcji z wieloma punktami SavePoint (tylko dla JDBC) do których transakcja może się cofad

Data Access Object (DAO) 10 Spring posiada jednolity i spójny model dla obiektów DAO, pozwalający na łączenie w jednej aplikacji wielu heterogenicznych źródeł danych Wyjątki wykorzystywane przez poszczególne technologie dostępu do danych zebrane zostały w spójną hierarchię Dla poszczególnych rodzajów źródeł danych przygotowane zostały klasy (np. HibernateDaoTemplate) ale ich stosowanie nie jest konieczne Obecnie Spring opakowuje wyjątki HibernateException

11 Data Access Object (DAO) (2) Przykładowa implementacja klasy DAO dla Hibernate @Repository public class ProductDaoImpl implements ProductDao { } @Autowired private SessionFactory sessionfactory; public Collection loadproductsbycategory(string category) { return this.sessionfactory.getcurrentsession().createquery("from test.product product where product.category=?").setparameter(0, category).list(); } public void setsessionfactory(sessionfactory sessionfactory) { this.sessionfactory = sessionfactory; }

12 Data Access Object (DAO) (3) Przykładowa konfiguracja Spring dla Hibernate <bean id="datasource" class="org.apache.commons.dbcp.basicdatasource" destroy-method="close"> <property name="driverclassname" value="org.hsqldb.jdbcdriver"/> <property name="url" value="jdbc:hsqldb:hsql://localhost:9001"/> <property name="username" value="sa"/> <property name="password" value=""/> </bean> <bean id="sessionfactory" class="org.springframework.orm.hibernate3.annotation.annotationsessionfactorybean"> <property name="datasource"> <ref bean="datasource"/> </property> <property name="annotatedpackages"> <list> <value>example.domain</value> </list> </property> </bean> <bean id="txmanager" class="org.springframework.orm.hibernate.hibernatetransactionmanager"> <property name="sessionfactory" ref="sessionfactory" /> </bean>