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

Podobne dokumenty
Zaawansowane Aplikacje Internetowe

Spring framework. Paweł Kędziora. Marek Lewandowski

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

mgr inż. Michał Paluch

Spring Framework - wprowadzenie i zagadnienia zaawansowane

SPRING FRAMEWORK. dr inż. Jakub Chłapioski

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Załącznik 2 utworzenie projektu

Podstawy frameworka Spring

KURS SPRING APLIKACJE WEBOWE

Zaawansowane Techniki Bazodanowe

Program szkolenia: Symfony, nowoczesny framework PHP

SZKOLENIE TWORZENIE SYSTEMÓW

Kurs ASP.NET ASP.NET CORE APLIKACJE WEBOWE

Szkolenie wycofane z oferty

METODY PROGRAMOWANIA

Zaawansowane aplikacje internetowe - laboratorium Architektura Spring.

Kontenery IoC dla Java Guice 3.0

Podstawowe wykorzystanie Hibernate

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

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

Wprowadzenie. Narzędzia i środowiska programistyczne. Laboratorium 1. Prowadzący: Kierunek: Semestr: Rok: Tomasz Gądek Informatyka Zimowy 2

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

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

Architektury Usług Internetowych. Laboratorium 1 Servlety

Zagadnienia Programowania Obiektowego Agata Hejmej

Contexts and Dependency Injection (CDI) Autor wykładu: Marek Wojciechowski

Tomasz Dobek.

Java Enterprise Edition spotkanie nr 1. Sprawy organizacyjne, wprowadzenie

Niezbędne serwery aplikacji. Wprowadzenie do technologii JBoss i Apache Tomcat.

Web frameworks do budowy aplikacji zgodnych z J2EE. Jacek Panachida

Elementy JEE. 1. Wprowadzenie. 2. Prerekwizyty. 3. Pierwszy servlet. obsługa parametrów żądań 4. JavaServer Pages.

Programowanie komponentowe 5

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

JBoss Seam: framework nowej generacji. Copyright Piotr Kochański & Erudis,

Przykłady tworzenia aplikacji komponentowych w technologii JavaServer Faces 2.1 na podstawie

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

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

Zaawansowane Aplikacje Internetowe

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

Wielowarstwowe aplikacje internetowe. Spring. Autorzy wykładu: Mikołaj Morzy Marek Wojciechowski. Spring

Podejście obiektowe do relacyjnych baz danych Hibernate.

Programowanie obiektowe

ASP.NET MVC. Grzegorz Caban 20 stycznia 2009

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

Java Server Faces narzędzie do implementacji w wy prezentacji

Tworzenie natywnych aplikacji na urządzenia mobilne - PhoneGap Tomasz Margalski

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA.

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2

JSF 1.2. w wykonaniu NetBeans IDE 6.1. Jacek Laskowski

Budowa aplikacji wielowarstwowych zastosowanie szablonów. Laboratorium 2 Programowanie komponentowe Zofia Kruczkiewicz

1 Wprowadzenie do J2EE

Biocentrum Ochota infrastruktura informatyczna dla rozwoju strategicznych kierunków biologii i medycyny POIG /09

<bean name="datecontroller" class="controllers.datecontroller" /> package controllers;

Wprowadzenie do narzędzia MAVEN

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

Wykład dla studentów Informatyki Stosowanej UJ 2012/2013

Java Server Faces - wprowadzenie

Programowanie w Javie 2. Płock, 26 luty 2014 r.

Architektury Usług Internetowych. Laboratorium 1. Servlety

W grze bierze udział dwóch graczy. Każdy uczestnik rozpoczyna rozgrywkę z sumą

Forum Client - Spring in Swing

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.

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

IT Camp Junior Java Developer. Cel kursu

Aplikacje internetowe i rozproszone - laboratorium

STRUTS 2. Krystyna Bury Katarzyna Sadowska Joanna Pyc Politechnika Wrocławska Wydział Informatyki i Zarządzania Informatyka, III rok

WICKET VS. DJANGO. Leszek Gawron vs. Michał Leszczyński

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Bazy danych tworzenie aplikacji bazodanowych ORM / JPA

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

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

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

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

Dokumentacja kompilacji źródeł aplikacji 1.0

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

Web frameworks do budowy aplikacji zgodnych z J2EE

Pico. Wstęp do kontenerów IoC.

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA.

EJB 3.0 (Enterprise JavaBeans 3.0)

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

Tematy dyplomów inżynierskich 2009 Katedra Inżynierii Oprogramowania

JBoss Application Server

Remote Method Invocation 17 listopada 2010

JavaServer Faces (JSF)

Badania poziomu bezpieczeństwa portalu dostępowego do infrastruktury projektu PL-Grid

Architektura mikroserwisów na platformie Spring IO

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

Programowanie w języku Java. Wykład 13: Java Platform, Enterprise Edition (Java EE)

ANGULARJS TWORZENIE APLIKACJI INTERNETOWYCH

PHP revisited - odświerzenie spojrzenia na programowanie w PHP

Programowanie w Javie cz. 1 Wstęp. Łódź, 24 luty 2014 r.

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Podejście obiektowe do budowy systemów rozproszonych

Backend Administratora

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1).

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

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

Transkrypt:

Tworzenie aplikacji internetowych z wykorzystaniem szkieletu Spring Paweł Ociepa, Paweł Pierzchała ociepa.pawel@gmail.com paw.pierzchala@gmail.com 20.05.2010

Cel prezentacji Przedstawić Spring Framework w kontekście webowym, w jak najbardziej praktycznym aspekcie, przy ograniczeniu teorii do koniecznego minimum.

Agenda 1. Od czego zacząć? 2. Czym jest Spring? 3. Moduły Spring Framework 4. Struktura aplikacji 5. Kontener IoC & DI 6. Kontener IoC? Jaka różnica? 7. Dependency Injection w praktyce 8. Zasada działania Spring MVC 9. Wspieranie pracy ze Spring Framework 10. Kontrolery 11. Część praktyczna

Od czego zacząć? (1/2)

Od czego zacząć? (2/2) http://madeyski.e-informatyka.pl/download/tutorials/springwebappin5steps.pdf

Czym jest Spring? Spring jest to open-sourcowy framework dla platformy Java oraz.net (Spring.NET) do tworzenia różnego rodzaju aplikacji.

Moduły Spring Framework Kontener IoC Szablon programowania aspektowego Szablon dostępu do danych Szablon obsługi transakcji Szablon Model-Widok-Kontroler Szablon zdalnego dostępu Szablon autoryzacji i autentykacji Szablon zdalnego zarządzania JMX Szablon komunikatów JMS Szablon obsługi testowania

Struktura aplikacji

Kontener IoC & DI Dwa kluczowe zagadnienia: Kontener Inverse of Control (Fabryka Beanów) rdzeń Springa umożliwia realizację zależności między obiektami zarządza komponentami i ich zależnościami możliwa integracja z własnym projektem bez konieczności korzystania z całego frameworka Dependency Injection mechanizm wstrzykiwania zależności zapewnienie luźnych zależności (loose coupling) między klasami

Kontener IoC? Jaka różnica?

Dependency Injection w praktyce (1/4) public class JdbcBookDao implements BookDao { private BasicDataSource datasource; public JdbcBookDao() { datasource = new BasicDataSource(); datasource.setdriverclassname("com.mysql.jdbc.driver"); datasource.seturl("jdbc:mysql://localhost/javaexpress?autoreconnect=true"); datasource.setusername("username"); datasource.setpassword("password"); } //...inne metody } Sposobem na wyeliminowanie zależności z klasy jest stworzenie zależności poza klasą i wstrzyknięcie jej do środka.

Dependency Injection w praktyce (2/4) public class JdbcBookDao implements BookDao { private DataSource datasource; } public void setdatasource(datasource datasource) { this.datasource = datasource; } //...inne metody

Dependency Injection w praktyce (3/4) public class BookService { private JdbcBookDao bookdao; public BookService() { try { Properties props = new Properties(); props.load(new FileInputStream("dataSource.properties")); BasicDataSource datasource = new BasicDataSource(); datasource.setdriverclassname(props.getproperty("driverclassname")); datasource.seturl(props.getproperty("url")); datasource.setusername(props.getproperty("username")); datasource.setpassword(props.getproperty("password")); } } bookdao = new JdbcBookDao(); bookdao.setdatasource(datasource); } catch (IOException e) { e.printstacktrace(); }

Dependency Injection w praktyce (4/4) public class BookService { private BookDao bookdao; public void setbookdao(bookdao bookdao) { this.bookdao = bookdao; } } <?xml version="1.0" encoding="utf-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="datasource" class="org.apache.commons.dbcp.basicdatasource" destroy-method="close"> <property name="driverclassname" value="com.mysql.jdbc.driver" /> <property name="url" value="jdbc:mysql://localhost/javaexpress?autoreconnect=true" /> <property name="username" value="username" /> <property name="password" value="password" /> </bean> <bean id="bookdao" class="dao.jdbcbookdao"> <! (1) --> <property name="datasource" ref="datasource" /> </bean> <bean id="bookservice" class="service.bookservice"> <!-- (2) --> <property name="bookdao" ref="bookdao" /> </bean> </beans>

Zasada działania Spring MVC

Wspieranie pracy ze Spring Framework Eclipse: Spring IDE NetBeans: od wersji 6.1 zintegrowany moduł Springa

Kontrolery (1/3) AbstractController CommandController AbstractCommandController AbstractFormController SimpleFormController AbstractWizardFormController MultiActionController

Kontrolery (2/3) CommandControllers AbstractCommandController wiązanie parametrów zadania ze wskazanym obiektem walidacja brak obsługi formularzy AbstractFormController obsługa formularzy Command Object / walidacja pól obsługa błędnie wysyłanych formularzy (resubmission)

Kontrolery (3/3) CommandControllers 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

Część praktyczna 1. Konfiguracja aplikacji w Springu przedstawiona na slajdach 1. Budowa aplikacji webowej opartej na tutorialu Aplikacja webowa z wykorzystaniem Spring Framework w 5 etapach. 1. Implementacja konkretnej funkcjonalności w aktualnie tworzonej aplikacji w Spring Framework System wspomagający konkurs Polskiego Towarzystwa Informatycznego na najlepszą pracę magisterską.

Część praktyczna Konfiguracja aplikacji w Springu Wymagania wstępne: Kontener aplikacji Apache Tomcat Dystrybucja Spring Framework with dependencies 2.5 (http://www.springsource.org/) Hibernate 3.5 (https://www.hibernate.org) Spring Security (http://static.springsource.org/spring-security/site/) Baza danych (w przykładzie PostgreSQL)

Część praktyczna Konfiguracja aplikacji w Springu Docelowy szkielet aplikacji powinien przedstawiać się następująco:

Część praktyczna Konfiguracja aplikacji w Springu W folderze WEB-INF dodajemy plik konfiguracyjny web.xml:

Część praktyczna Konfiguracja aplikacji w Springu Dodanie pierwszej strony index.jsp w nowo utworzonym folderze WEB-INF/jsp:

Po uruchomieniu: Część praktyczna Konfiguracja aplikacji w Springu

Część praktyczna Konfiguracja aplikacji w Springu Dodanie do pliku konfiguracyjnego web.xml DispatcherServlet oraz mapowania. (Dodany kod zaznaczony na czerwono.)

Część praktyczna Konfiguracja aplikacji w Springu Bazując na nazwie servletu zdefiniowanej w web.xml: <servlet-name>tutorial</servlet-name> tworzymy plik konfiguracyjny w folderze WEB-INF/tutorial-servlet.xml:

Część praktyczna Część praktyczna w środowisku Eclipse

Dziękujemy za uwagę :)

Czy ktoś uważa? Brawo za spostrzegawczość! :) * * slajd wymaga dodatkowego wyjaśnienia