Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Podobné dokumenty
Spring framework 2.0. Roman Pichlík CZJUG

Další vlastnosti Springu Moduly Springu. Spring Framework. Pavel Mička. Pavel Mička Spring Framework 1/18

Základy Guice Vazby Scopes. Google Guice. základní seznámení s frameworkem Google Guice

Vybrané partie z jazyka Java Spring a Enterprise JavaBeans (EJB)

KIV/PIA 2013 Jan Tichava

JAVA. Aspekty (AOP) AspectJ

NOVINKY V JEE EJB 3.1. Zdeněk Troníček Fakulta informačních technologií ČVUT v Praze

Technology Entry form Entry up-to-date? Internal links Faulty internal Possible internal links

Podpora aplikační logiky v J2EE aplikačních rámcích

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Tvorba informačních systémů

Spring Framework Handout

Návrhové vzory Tvorba objektů

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Enterprise Java Beans 3.0

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Spring portfolio. Tomáš Krátký

OSGi. Aplikační programování v Javě (BI-APJ) - 6 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

IoC/DI. Tomáš Herceg Microsoft MVP (ASP.NET)

PA165: Úvod do Java EE. Petr Adámek

RMI Remote Method Invocation

(Enterprise) JavaBeans. Lekce 7

Nástroje a frameworky pro automatizovaný vývoj. Jaroslav Žáček jaroslav.zacek@osu.cz

Reflexe. Aplikační programování v Javě (BI-APJ) - 8 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Nové předměty z oblasti softwarového vývoje na FIM UHK

ASPEKTOVĚ ORIENTOVANÉ PROGRAMOVÁNÍ

JavaServer Faces Zdeněk Troníček

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

UJO Framework. revoluční architektura beans. verze

Úvod. Petr Aubrecht (CA) Martin Ptáček (Wincor Nixdorf) Je 10 typů lidí: ti, kteří znají binární kód, a ti, kteří ne.

Technologie JavaBeans

Obsah přednášky. Technologie. Enterprise Java Beans. Enterprise Java Beans. EJB kontejner. Enterprise Java Beans (EJB)

Co je nového v Java EE 6

Internetové technologie na platformě JAVA. Miroslav Hrúz

Tvorba informačních systémů

Multiplatformní osobní organizér v jazyce Java

Platformy / technologie. Jaroslav Žáček jaroslav.zacek@osu.cz

Architektury informačních systémů

Architektury informačních systémů

Softwarové komponenty a Internet

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Distribuované systémy a výpočty

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

Transaction API + webové frameworky + další poznámky. Petr Aubrecht CA

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

JAVA Unit testing Java, zimní semestr

1. Distribuce Javy. 2. Vlastnosti J2EE aplikace. 3. Fyzická architektura J2EE aplikace. Distribuce Javy se liší podle jejího zamýšleného použití:

Návrh softwarových systém. Návrh softwarových systémů

OMO. 4 - Creational design patterns A. Singleton Simple Factory Factory Method Abstract Factory Prototype Builder IoC

Lambda funkce Novinky v interfaces Streamy Optional - aneb zbavujeme se null. Java 8. Ondřej Hrstka

Session Beans. Petr Aubrecht CA. Vtipy budou tentokrát o krizi:

X33EJA Enterprise Java. Petr Šlechta Sun Microsystems

NetBeans platforma. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Využití EJB 3.0 při tvorbě podnikových aplikací

Fakulta elektrotechnická. Bc. Petr Halaška. Studijní program: Elektrotechnika a informatika, strukturovaný, Navazující magisterský

Tvorba informačních systémů

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Vývoj informačních systémů. Architektura, návrh Vzory: Doménová logika

public static void main(string[] args) { System.out.println(new Main().getClass().getAnnotation(Greet.class).text());

Dnešní program. Architektura, Design. Když zbude čas. Architektura webové aplikace Design patterns IoC, AOP. Kuchařky, dočasná řešení

Návrhové vzory. Jakub Klemsa, Jan Legerský. 30. října Objektově orientované programování.

Motivační příklad reálný svět. výroba (assembly line)

Systém evidence knih v obecní

Jak na IoC/DI kontejnery

Java Managenent Extension JMX

Oddělení webového a aplikačního serveru. Běží zde několik aplikací.

Abstraktní datové typy: zásobník

Java a Caché IV: Manipulace s objekty

Čipové karty Lekařská informatika

Tvorba informačních systémů

Platformy / technologie. Jaroslav Žáček

Vláknové programování část V

Česká společnost uživatelů otevřených systémů EurOpen.CZ Czech Open System Users Group XXXI. konference.

Semináˇr Java X J2EE Semináˇr Java X p.1/23

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

PA165: Persistence Layer. Petr Adámek

GWT pro pokročilé. MoroSystems, s.r.o. Pavel Klobása. Senior Java Developer.

Java Výjimky Java, zimní semestr

Návrhové vzory pro J2EE

Iterator & for cyklus

Principy objektově orientovaného programování

Projekty pro výuku programování v jazyce Java

Jak správně na Hibernate. Martin Hlavatý

Návrhové vzory OMO, LS 2014/2015

KTE / ZPE Informační technologie

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

ZABEZPEČENÍ A ARCHITEKTURA SPRÁVCE IPTV

PLATFORMY / TECHNOLOGIE JAROSLAV ŽÁČEK

Návrhové vzory pro J2EE. Miroslav Beneš

Návrhové vzory Design Patterns

Mělká a hluboká kopie

X33EJA Web Services. Martin Ptáček, KOMIX s.r.o.

Programování v jazyce JavaScript

Platformy / technologie. Jaroslav Žáček

Jazyk C# a platforma.net

Transkript:

Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV) Katedra softwarového inženýrství Fakulta informačních technologií ČVUT v Praze Letní semestr 2010/2011, přednáška č. 11 Zdeněk Troníček, 2011

Agenda Framework Spring Kontejner, injekce závislostí Aspektově orientované programování 2

Framework Spring lightweight container dependency injection (inversion of control) aspect-oriented non-invasive Spring bean = Spring managed object Hollywood Principle Don t call me, I ll call you. 3

Spring Modules DAO Spring JDBC Transaction management AOP Spring AOP AspectJ ORM Hibernate JPA Toplink JEE JMX JMS EJB Web MVC Struts JSP JSF Core Container 4

Core Container BeanFactory generic factory implements dependency injection Service POJO EJB RMI object web service CustomerService BankManager AccountService 5

Příklad (1) public interface CustomerService { public interface AccountService { public class CustomerServiceBean implements CustomerService { public class AccountServiceBean implements AccountService { public interface BankManager { void addnewcustomer( String name, String email, String currency ); 6

Příklad (2) public class BankManagerBean implements BankManager { private CustomerService customerservice; private AccountService accountservice; public void addnewcustomer( String name, String email, String currency ) { public void setcustomerservice( CustomerService customerservice ) { this.customerservice = customerservice; public void setaccountservice( AccountService accountservice ) { this.accountservice = accountservice; 7

Příklad (3) <beans> <bean id="bankmanager" class="bank.bankmanagerbean"> <property name="customerservice" ref="customerservice"/> <property name="accountservice" ref="accountservice"/> </bean> <bean id="customerservice" class="bank.customerservicebean"/> <bean id="accountservice" class="bank.accountservicebean"/> </beans> 8

Příklad (4) ApplicationContext context = new ClassPathXmlApplicationContext( "config.xml" ); BankManager manager = (BankManager) context.getbean( "bankmanager" ); manager.addnewcustomer( "Rumcajs", "rum@email.cz", "CZK" ); 9

Vytváření objektů Voláním konstruktoru <bean id="examplebean" class="examples.examplebean"/> Pomocí statické tovární metody <bean id="examplebean" class="examples.staticfactory" factory-method="createinstance"/> Pomocí instanční tovární metody <bean id="examplebean" factory-bean="servicelocator" factory-method="createservice"/> 10

Injekce závislostí (1) Constructor Injection public class MovieManager { private MovieFinder moviefinder; public MovieManager( MovieFinder moviefinder ) { this.moviefinder = moviefinder; 11

Injekce závislostí (2) Setter Injection public class MovieManager { private MovieFinder moviefinder; public void setmoviefinder( MovieFinder moviefinder ) { this.moviefinder = moviefinder; 12

Autowiring byname: setleagueservice( LeagueService leagueservice ) bytype: setleagueservice( LeagueService leagueservice ) constructor: RegisterServiceBean( LeagueService leagueservice ) <bean id="registerservice" class="league.registerservicebean" autowire="bytype"/> 13

Bean Scopes singleton: one instance per container prototype (non-singleton) web-based (request, session, global session) custom scope <bean id=" " class=" "> <property name="accountdao" ref="accountdao"/> </bean> <bean id=" " class=" "> <property name="accountdao" ref="accountdao"/> </bean> <bean id="accountdao" class=" " scope="singleton"/> 14

Konfigurace <context:property-placeholder location="app.properties"/> <bean id="registerservice" class="registerservicebean"> <property name="datadir"> <value>${application.datadir</value> </property> </bean> 15

Aspect Oriented Programming Bean1 Proxy Service Bean2 Transaction Security Monitoring Logging 16

AOP Concepts Aspect: crosscutting concern, e.g. transaction management Join point: a point during the execution of a program method execution Advice: action taken by an aspect at a particular join point Pointcut: a predicate that matches join points 17

Types of Advice Before advice (@Before) After returning advice (@AfterReturning) After throwing advice (@AfterThrowing) After (finally) advice (@After) Around advice (@Around) 18

Příklad Before @Aspect public class RegisterAspect { private int count; @Before( "execution (* springapp.registerservice+.*(..))" ) public void used() { count++; public int getcount() { return count; 19

Příklad Around @Aspect public class AroundAspect { @Around( "execution (* springapp.registerservice+.add*(..))" ) public Object profile( ProceedingJoinPoint pjp ) throws Throwable { long start = System.nanoTime(); try { return pjp.proceed(); finally { long t = System.nanoTime() - start; System.out.println( "time: " + t ); 20

Otázky & odpovědi tronicek@fit.cvut.cz