lukas_krecan_spring
Transkript
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
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...
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í ...
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ý ...
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...
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)
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
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é...
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,