Spring Tutorial: Co je Spring Framework a jak nainstalovat?
Co je Spring Framework?
Jarnรญ rรกmec je open-source framework pro tvorbu webovรฝch aplikacรญ Java jako programovacรญ jazyk. Je vรฝkonnรฝ a lehkรฝ, ale snadno se pouลพรญvรก a poskytuje podporu pro vรฝvoj Java aplikace snadno. Spring je lehkรฝ rรกmec, kterรฝ lze povaลพovat za rรกmec rรกmcลฏ, protoลพe takรฉ nabรญzรญ podporu pro rลฏznรฉ rรกmce, jako je hibernace, vzpฤry, tapiserie a JSF.
Jarnรญ rรกmec
Vlastnosti Spring Frameworku
Nynรญ v tomto jarnรญm tutoriรกlu pokryjeme nฤkterรฉ nejvรฝznamnฤjลกรญ funkce Spring Framework:
- Pลeddefinovanรฉ ลกablony
- Snadno testovatelnรฉ
- Volnรฉ spojenรญ
- Lehkรก vรกha
- Rychlรฝ vรฝvoj
- Silnรก abstrakce
- Nabรญzรญ ลadu zdrojลฏ
- Deklarativnรญ podpora
- Nabรญzรญ komplexnรญ nรกstroje
Struฤnรก historie jara
Nynรญ v tomto tutoriรกlu Spring Framework pokryjeme nฤkterรฉ dลฏleลพitรฉ orientaฤnรญ body z historie Spring:
- Spring framework napsal Rod Johnson a byl poprvรฉ vydรกn v ฤervnu 2002.
- Jaro last verze byla vydรกna v bลeznu 2004
- Vydรกnรญ jarnรญ verze 1.2.6 v roce 2006
- Vydรกnรญ jarnรญ verze 2.0 v ลรญjnu 2006
- Vydรกnรญ jarnรญ verze 2.5 v listopadu 2007
- Vydรกnรญ jarnรญ 3 verze v prosinci 2009
- Vydรกnรญ jarnรญ 3.1 verze v prosinci 2011
- Vydรกnรญ jarnรญ verze frameworku 4 v prosinci 2013 s Java Podpora 8
- Verze jarnรญho rรกmce 4.2.0 vydanรก v ฤervenci 2015
- Verze jarnรญho rรกmce 4.2.1 vydanรก v zรกลรญ 2015
- Verze Spring Framework 4.3 vydanรก 10. ฤervna 2016
- Verze jarnรญho rรกmce 5.0 vydanรก v ฤervnu 2017
Jarnรญ rรกmec Architecture
Jarnรญ rรกmec Architecture poskytuje 20 modulลฏ, kterรฉ lze pouลพรญt na zรกkladฤ poลพadavku aplikace.
Jarnรญ rรกmec Architecture
Jedno Jรกdro si Fazole poskytujรญ zรกkladnรญ ฤรกst rรกmce, vฤetnฤ IoC a DI.
Core Container
Core Container je dรกle rozdฤlen na dรญlฤรญ komponenty, jako jsou moduly Core, Beans, Context a Expression Language.
Podรญvejme se podrobnฤ na kaลพdรฝ z tฤchto modelลฏ:
Jarnรญ jรกdro:
Modul Core poskytuje veลกkerou primรกrnรญ komponentu pruลพinovรฉho rรกmce. Zahrnuje funkce IoC (Inversion of Control) a Dependency Injection.
Jarnรญ fazole:
Tento modul nabรญzรญ BeanFactory, coลพ je sofistikovanรก implementace tovรกrnรญho vzoru.
Jarnรญ kontext:
Modul Context stavรญ na pevnรฉm zรกkladu, kterรฝ poskytujรญ moduly Core a Beans, a je to mรฉdium, kterรฉ vรกm pomรกhรก pลistupovat k jakรฝmkoli definovanรฝm a nakonfigurovanรฝm objektลฏm.
Jazyky jarnรญch vรฝrazลฏ (SpEL):
Tento modul nabรญzรญ vรฝrazovรฝ jazyk pro รบpravu a dotazovรกnรญ objektovรฉho grafu za bฤhu.
Pลรญstup k datลฏm/integrace:
Vrstva Data Access and Integration se sklรกdรก z modulลฏ JDBC, ORM, JDBC, OXM, JMS a Transaction.
- ORM: Modul ORM nabรญzรญ konzistenci/pลenositelnost kรณdu bez ohledu na technologie pลรญstupu k datลฏm. Bude zaloลพen na konceptu objektovฤ orientovanรฉho mapovรกnรญ.
- JDBC modul se sklรกdรก z JDBC-abstrakce vrstvy. Pomลฏลพe vรกm to vysvฤtlit potลebu provรกdฤt kรณdovรกnรญ souvisejรญcรญ s JDBC.
- OXM: Object XML Mappers (OCM) vรกm pomลฏลพe pลevรฉst objekty do formรกtu XML a naopak.
- Jedno Java Modul Messaging Service nabรญzรญ funkce, jako je vytvรกลenรญ a pลijรญmรกnรญ zprรกv.
- Transakce: Tento modul nabรญzรญ deklarativnรญ a programovou metodu sprรกvy pro implementaci jedineฤnรฝch rozhranรญ a pro vลกechny typy POJO (Plain Old Java Objekt)
Jarnรญ web:
Web: Tento modul pouลพรญvรก posluchaฤe servletลฏ a kontext webovรฉ aplikace. Nabรญzรญ takรฉ funkci webovฤ orientovanรฉ integrace a funkcionalitu pro nahrรกvรกnรญ vรญcedรญlnรฝch souborลฏ.
Webovรฝ servlet: Tento modul uklรกdรก implementaci zaloลพenou na MVC webovรฉ aplikace.
Web-Socket: Modul nabรญzรญ ve webovรฝch aplikacรญch obousmฤrnou komunikaci mezi klientem a serverem na bรกzi WebSocket.
Webovรฝ portlet: Tento modul se takรฉ nazรฝvรก modul Spring-MVC-Portlet. Nabรญzรญ pro Spring-based portlety a kopรญruje vลกechny funkce modulu Web-Servlet.
PDO: Jazyk AOP je uลพiteฤnรฝ nรกstroj, kterรฝ umoลพลuje vรฝvojรกลลฏm pลidat do aplikace podnikovรฉ funkce.
Instrumentace: Tento modul nabรญzรญ instrumentaci tลรญdy a implementace zavadฤฤe. Pouลพรญvรก se pro specifickรฉ aplikaฤnรญ servery.
Test: Tento modul poskytuje podporu pro testovรกnรญ komponentลฏ Spring TestNG or JUnit nรกstroje. Nabรญzรญ konzistentnรญ naฤรญtรกnรญ Spring ApplicationContexts a uklรกdรกnรญ tฤchto kontextลฏ do mezipamฤti.
Spring โ MVC Framework
Nynรญ v tomto tutoriรกlu Spring Framework se dozvรญme o frameworku Spring MVC:
Spring MVC framework
Framework Spring web MVC nabรญzรญ architekturu model-view-controller, kterรก nabรญzรญ komponenty, kterรฉ vรกm pomohou bรฝt flexibilnรญ a volnฤ propojenรฉ webovรฉ aplikace.
Vzor MVC vรกm umoลพลuje oddฤlit rลฏznรฉ aspekty aplikace a zรกroveล nabรญzรญ volnรฉ spojenรญ mezi tฤmito prvky. Spring MVC vรกm takรฉ pomรกhรก vytvรกลet flexibilnรญ a volnฤ propojenรฉ webovรฉ aplikace.
Nรกvrh MVC takรฉ umoลพลuje oddฤlit obchodnรญ logiku, prezentaฤnรญ logiku a navigaฤnรญ logiku. Nabรญzรญ takรฉ elegantnรญ ลeลกenรญ pro pouลพitรญ MVC v Spring Frameworku pomocรญ DispatcherServlet.
Jak funguje MVC na jaลe?
Nynรญ v jarnรญm tutoriรกlu se budeme uฤit jak MVC funguje na jaลe:
Jak MVC funguje na jaลe
- DispatcherServlet obdrลพรญ poลพadavek.
- Potรฉ DispatcherServlet komunikuje s HandlerMapping. Zruลกรญ takรฉ sprรกvce pลidruลพenรฝ k tomuto konkrรฉtnรญmu poลพadavku.
- ลadiฤ zpracuje tento poลพadavek volรกnรญm servisnรญch metod a objektu ModelAndView vrรกcenรฉho DispatcherServlet.
- Nรกzev pohledu je odeslรกn do ViewResolveru k vyhledรกnรญ skuteฤnรฉho pohledu, kterรฝ mรก bรฝt vyvolรกn.
- Potรฉ je DispatcherServlet pลedรกn View k vykreslenรญ vรฝsledku.
- Pomocรญ dat modelu se pohled vykreslรญ a poลกle zpฤt vรฝsledek zpฤt uลพivateli.
Aspektovฤ orientovanรฉ programovรกnรญ
Aspektovฤ orientovanรฉ programovรกnรญ umoลพลuje globรกlnรญm vlastnostem programu rozhodnout, jak bude zkompilovรกn do spustitelnรฉho programu.
Klรญฤovou jednotkou modularity je aspekt namรญsto tลรญdy. Aspektovฤ orientovanรฉ programovรกnรญ rozdฤluje logiku programu na rลฏznรฉ ฤรกsti znรกmรฉ jako obavy.
Prลฏลezovรฝ problรฉm mลฏลพe ovlivnit celou aplikaci a je centralizovรกn na jednom mรญstฤ v kรณdu, jako je zabezpeฤenรญ transakcรญ, sprรกva, protokolovรกnรญ, ovฤลovรกnรญ atd.
Prลฏลezovรฝ zรกjem
Lze jej takรฉ povaลพovat za dynamickรฝ designovรฝ vzor dekoratรฉrลฏ. Tento vzor takรฉ nabรญzรญ dalลกรญ chovรกnรญ, kterรฉ lze pลidat do existujรญcรญ tลรญdy zabalenรญm pลฏvodnรญ tลรญdy a duplikovรกnรญm jejรญho rozhranรญ a odstranฤnรญm pลฏvodnรญ tลรญdy.
Jรกdro AOP Concepts
Aspektovฤ orientovanรฉ programovรกnรญ mรก sedm zรกkladnรญch konceptลฏ.
Jรกdro AOP Concepts
Pojฤme si je podrobnฤ probrat:
- Vzhled: Aspekt je tลรญda, kterรก umoลพลuje implementaci aplikace JEE. Tรฝkรก se to vรญce tลรญd, jako je sprรกva transakcรญ, zabezpeฤenรญ atd. Aspekty mohou bรฝt typickou tลรญdou konfigurovanou pomocรญ konfigurace Spring XML nebo bฤลพnou tลรญdou anotovanou pomocรญ anotace @Aspect.
- Spoleฤnรฝ bod: Je to kandidรกtskรฝ bod pลi provรกdฤnรญ programu, kam lze zapojit aspekt. Mลฏลพe to bรฝt metoda, kterรก je volรกna jako vรฝjimka, nebo dokonce pole, kterรฉ je zmฤnฤno.
- Upozornฤnรญ: Rady jsou skuteฤnรฉ akce provedenรฉ pro konkrรฉtnรญ spojovacรญ bod. Tato metoda se spustรญ, kdyลพ se konkrรฉtnรญ spojovacรญ bod setkรก s odpovรญdajรญcรญm bodem v aplikaci.
- Pointcut: Je to vรฝraz, kterรฝ lze spojit se spojovacรญmi body pro kontrolu, zda mรก bรฝt tato rada provedena nebo ne.
- Target Objekt: Na zรกkladฤ cรญlovรฉho objektu se aplikujรญ zaลรญzenรญ. V AOP je za bฤhu vytvoลena podtลรญda, kde by mฤla bรฝt cรญlovรก metoda pลepsรกna, a rady jsou zahrnuty v zรกvislosti na jejich konfiguraci.
- proxy: Tento objekt by mฤl bรฝt vytvoลen po aplikaci rady na cรญlovรฝ objekt.
- Tkanรญ: Toto je metoda propojenรญ aspektu s jinรฝmi aplikaฤnรญmi objekty nebo typy za รบฤelem vytvoลenรญ doporuฤenรฉho objektu.
Instalace Java Jaro
Nynรญ v tomto Java Jarnรญ tutoriรกl, nauฤรญme se krok za krokem informace k instalaci Java Jaro ve vaลกem poฤรญtaฤi:
Krok 1) Otevลete prohlรญลพeฤ.
Pลejรญt eclipse.org.
Krok 2) Ke staลพenรญ Eclipse Nainstalovat.
Ke staลพenรญ Eclipse Neon instalaฤnรญ program a nainstalujte jej do svรฉho Windows systรฉm.
Krok 3) Najdฤte 64bitovou verzi.
Kliknฤte na tlaฤรญtko โStรกhnout 64-bitโ.
Krok 4) Najdฤte IDE pro Java Vรฝvojรกลi.
Pลejรญt Eclipse IDE pro Java Vรฝvojรกลi a kliknฤte na odkaz โ64-bitโ.
Krok 5) Najdฤte 64bitovรฝ odkaz.
Kliknฤte na "Windows 64bitovรฝโ odkaz.
Krok 6) Stรกhnฤte soubor zipu.
Kliknutรญm na tlaฤรญtko โStรกhnoutโ stรกhnete soubor zip.
Krok 7) Extrahujte soubor zip.
Extrahujte staลพenรฝ zip do konkrรฉtnรญ sloลพky.
Krok 8) Vyberte adresรกล pracovnรญho prostoru.
Kliknutรญm na tlaฤรญtko โProchรกzetโ vyberte adresรกล pracovnรญho prostoru.
Krok 9) Vybrat sloลพku.
Kliknutรญm na โVybrat sloลพkuโ vyberte sloลพku.
Proces se zobrazรญ, jak je znรกzornฤno na nรกsledujรญcรญ obrazovce.
Krok 10) Otevลete klienta.
Zahรกjenรญ Eclipse Klient Marketplace.
- Pลejdฤte do nabรญdky Nรกpovฤda.
- Kliknฤte na "Eclipse moลพnost Marketpalceโ.
Krok 11) Hledat jarnรญ plugin.
Vyhledรกnรญ a instalace pluginu Spring.
- Do textovรฉho pole โNajรญtโ napiลกte Jaro.
- Kliknฤte na ikonu โHledatโ.
- Kliknutรญm na tlaฤรญtko โInstalovatโ nainstalujete plugin.
Krok 12) Kliknฤte na tlaฤรญtko 'potvrdit'.
Potvrฤte vybranรฉ funkce a kliknฤte na tlaฤรญtko โPotvrditโ.
Krok 13) Pลijmฤte podmรญnky.
Pลijetรญ podmรญnek a instalace softwaru.
- Kliknฤte na pลepรญnaฤ โSouhlasรญm s podmรญnkami licenฤnรญch smluvโ.
- Klepnutรญm na tlaฤรญtko โDokonฤitโ instalaci dokonฤรญte.
Zobrazรญ se uvรญtacรญ obrazovka s postupem instalace softwaru.
Krok 14) Restartujte IDE.
Pro restart kliknฤte na tlaฤรญtko โRestartovat nynรญโ. Eclipse IDE a aplikujte zmฤny.
Zobrazรญ se nรกsledujรญcรญ obrazovka:
Vรฝhody Spring Frameworku
Zde jsou dลฏleลพitรฉ vรฝhody / vรฝhody pouลพรญvรกnรญ pruลพiny.
- Spring umoลพลuje vรฝvojรกลลฏm vyvรญjet aplikace podnikovรฉ tลรญdy s pomocรญ POJO.
- Nabรญzรญ ลกablony pro Hibernate, JDBC, Hibernate, JPA atd., aby se zabrรกnilo psanรญ zdlouhavรฉho kรณdu.
- Poskytuje abstrakci Java Enterprise Edition (JEE).
- Mลฏลพete uspoลรกdat jaro modulรกrnรญm zpลฏsobem. Takลพe pokud je poฤet balรญฤkลฏ a tลรญd podstatnรฝ, staฤรญ, kdyลพ potลebujete a zbytek ignorujete.
- Nabรญzรญ deklarativnรญ podporu pro transakce, formรกtovรกnรญ, ovฤลovรกnรญ, uklรกdรกnรญ do mezipamฤti atd.
- Aplikace vyvinutรก pomocรญ Spring je jednoduchรก, protoลพe kรณd zรกvislรฝ na prostลedรญ je pลesunut do tohoto rรกmce.
Nevรฝhody Spring Frameworku
Zde jsou nevรฝhody/nevรฝhody Spring Frameworku.
- Java jaro nabรญzรญ pลรญliลก mnoho omezenรญ.
- Kรณd je veลejnรฝ, je viditelnรฝ pro vลกechny.
- Takรฉ nenabรญzรญ vlastnรญ funkce.
Shrnutรญ
- Spring framework je snadno pouลพitelnรฝ open-source Java platforma
- Pลeddefinovanรฉ ลกablony a volnรฝ pรกr jsou dลฏleลพitรฝmi vlastnostmi Java jaro
- Spring framework napsal Rod Johnson a byl poprvรฉ vydรกn v ฤervnu 2002
- Spring Framework poskytuje 20 modulลฏ, kterรฉ lze pouลพรญt na zรกkladฤ poลพadavku aplikace.
- Java spring dispatcherServlet komunikuje s HandlerMappingem. Zruลกรญ takรฉ sprรกvce pลidruลพenรฝ k tomuto konkrรฉtnรญmu poลพadavku.
- Aspektovฤ orientovanรฉ programovรกnรญ umoลพลuje globรกlnรญm vlastnostem programu rozhodnout, jak bude zkompilovรกn do spustitelnรฉho programu.
- Nejvฤtลกรญ vรฝhodou je Java Jaro je v tom, ลพe umoลพลuje vรฝvojรกลลฏm vyvรญjet aplikace podnikovรฉ tลรญdy s pomocรญ POJO
- Nejvฤtลกรญ nevรฝhodou Java jaro je, ลพe nabรญzรญ pลรญliลก mnoho omezenรญ.
Zkontrolujte takรฉ: - Top 80 jarnรญch MVC Framework Interview Otรกzky a odpovฤdi






















