lukas_krecan_spring

Transkript

lukas_krecan_spring
Spring – skládáme aplikace
Lukáš Křečan
[email protected]
http://blog.krecan.net
Obsah
●
Teorie vs. Praxe
●
Infrastrukturní kód
●
Jak nám pomůže Spring?
●
Praktické ukázky
Ideální svět
Praxe
Důvody:
●
●
Kostičky nepasují
–
Potřebujeme spojit nový kód, stávající kód,
knihovny třetích stran a knihovny Javy
–
Liší se filozofií, přístupem
–
API jsou často nízkoúrovňová
–
Úzká vazba mezi komponentami
Java nemá jednotný přístup k spojení a
konfiguraci komponent
JDBC Příklad
●
Jednoduché JDBC volání
●
Tři řádky business kódu
●
Infrastrukturní kód se bude opakovat v každé
metodě
●
Infrastrukturní kód je náchylný k chybě
●
Neřeší transakce
●
Nepřehledné
Dva druhy kódu
●
●
Infrastrukturní
–
Je nezbytný z technického hlediska
–
Často se opakuje
–
Podobný ve všech projektech
Business kód
–
Jediné co zajímá zákazníka
–
Jediný důvod proč píšeme software
–
Jedinečný pro danou aplikaci
Infrastrukturní kód je fuj
●
●
Infrastrukturní kód
–
Zabírá čas
–
Znepřehledňuje kód
–
Náchylný na chybu
–
Nikdo ho neocení
Řešení
–
Nepsat ho
Vlastní framework
●
Klasické řešení problémů s infrastrukturou
●
Proč ne:
–
Často vzniká živelně
–
Těžko uchopitelné – nevíme co má obsahovat
–
Problém se zaučením nových zaměstnanců
–
Obtížná údržba
–
Obtížné testování
–
Neexistující dokumentace
–
Klasický pomníček
Spring
●
Zjednodušuje infrastrukturní kód
●
Vyzkoušené řešení
●
Podpora velkých dodavatelů
●
Open Source
●
Dokumentace
●
Nástroje
●
Komunita
JDBC příklad ve Springu
●
Jeden řádek kódu
●
Jako bonus dostaneme
–
Konfigurovatelnost
–
Testovatelnost
–
Překlad vyjímek
–
Podporu transakcí
–
Odstínění od nízkoúrovňového API
Základy Springu
●
Bean – stavební jednotka (dílek skládačky)
●
Dependency injection – pospojování (lepidlo)
●
Template – zjednodušuje práci (obaluje dílky
tak, aby do sebe zapadaly)
Transakce
●
●
●
Abstrakce transakci společná pro lokální i JTA
transakce
Deklarativní i programovatelná podpora
transakcí
Podpora anotací @Transactional
AOP, dynamické proxy
●
Proxy dynamicky generované při startu
●
Klíčový koncept Springu
●
Použité při AOP, lazy loadingu, scope, volání
WS,...
Přenositelnost
●
Přenositelnost mezi J2EE a J2SE
●
Možnost růstu
●
Testovatelnost
Java Persistence API
●
ORM
●
Nástupce Entity Bean
●
Inspirováno Hibernate
Snadná záměna dílků
●
Použijeme jinou implementaci jen změnou
konfigurace
●
Klientský kód zůstává nezměněn
●
Důraz na používání rozhraní
●
Spring nás odstíní od konfiguračních detailů
JMS
●
Použit JMS template
●
Detaily JMS API skryty
●
Jenom business kód
Webové služby
●
●
●
Možnost použití dynamického proxy
Integrace s JAX-WS, JAX-RPC, Axis, Xfire
(CFX) atd.
Modul Spring-WS
Přínosy Springu
●
Zbaví nás infrastrukturního kódu
●
Usnadní konfiguraci
●
Odstíní nás od nízkoúrovňových API
●
Není invazivní
●
Ulehčí nám život
Podpora knihoven
●
Spring nic nedělá, všechno deleguje na
–
J2EE
–
WS - Axis, CFX
–
Časovač - Quartz
–
ORM - Hibernate, Toplink
–
JMS - ActiveMQ
–
JTA - JOTM, Bitronix
–
…
Nevýhody Springu
●
Není to standard
●
Open Source
●
Je návykový
●
Nutí nás řešit business kód :-)
Co si zapamatovat?
Spring je jen lepidlo
Kde najdu více?
●
http://www.springframework.org/documentation
●
Spring in Action, C. Walls, R. Breidenbach
●
●
Professional Java Development with the Spring
Framework, R. Johnson, J. Hoeller, A.
Arendsen, T. Risberg
http://blog.krecan.net/
Otázky?
●
[email protected]
●
http://common.krecan.net
A co EJB 3?
●
EJB 3 velký krok kupředu
●
Fungují pouze v J2EE 5
●
Privilegované X neprivilegované třídy
●
Pomalý vývoj
●
Neusnadní nám konfiguraci
●
Neusnadní nám práci s knihovnami

Podobné dokumenty

JMS

JMS Enterprise Java Beans EJB (doplnění)

Více

Novinky ze sv¥ta grid

Novinky ze sv¥ta grid Nejv¥t²í produkt £eské ú£asti: Logging and Bookkeeping (L&B) P°íjem zpráv o událostech, p°edev²ím p°i zpracování výpo£etních úloh Implementace stavového diagramu a pr·b¥ºný výpo£et stavu procesu po...

Více

propozicie - EuroRodeo

propozicie - EuroRodeo U juniorských disciplín bude vyplaceno 70% ze startovného 1 místo 50%, 2 místo 30%, 3 místo 20% Přihlášky online na webových stránkách www.eurorodeo.eu email: [email protected] Slavnostní ...

Více

Organická syntéza na pevné fázi (OCH/OSPF)

Organická syntéza na pevné fázi (OCH/OSPF) polymer s 2-chlortritylovou skupinou (Obrázek 4). Množství terminálních skupin (aktivních míst) závisí na typu použitého polymeru a definuje se jako tzv. loading neboli „nabití“ pryskyřice udávaný ...

Více

Fulltextové vyhledávání v Unicorn ES pomocí Lucene

Fulltextové vyhledávání v Unicorn ES pomocí Lucene interMedia Index … nelze provádět online přepočítávání indexů, silně je omezena škálovatelnost, atd. Jedním z možných řešení je přejít na Oracle Enterprise Edition, ale vzhledem k její finanční nár...

Více

List1 Stránka 1 - First

List1 Stránka 1 - First List1 Upozornění: tento seznam není úplný! Celý seznam na http://www.seznamkatalogu.cz (nejúplnější seznam CZ katalogů, podle něho registrujeme)

Více

Elektronická komunikace online

Elektronická komunikace online Česká verze ICQ oficiálně (česky) ICQ-planet.com – skiny, smajlíci, návody, rady (česky) icq.xmpp.cz – problémy a nevýhody ICQ

Více

Tisková zpráva z 16. 10. 2008

Tisková zpráva z 16. 10. 2008 společnosti atd.). Jeho kresby jsou velmi expresivní, takže jejich vystavení v NTK bude jakousi monumentální freskou zobrazující průřez otázkami naší současnosti a zásobárnou výpovědi o tom, v jaké...

Více

OBECNÁ PEDAGOGIKA – seznam použité a inspirativní literatury 1

OBECNÁ PEDAGOGIKA – seznam použité a inspirativní literatury 1 pedagogiky. Hradec Králové : Gaudeamus, 2004. JŮVA, V. a V. Stručné dějiny pedagogiky. Brno : MU, 1995. JŮVA, V. a V. Stručný přehled pedagogiky. Brno : Paido,

Více