Spring Tutorial: Co je Spring Framework a jak nainstalovat?

โšก Chytrรฉ shrnutรญ

Spring Framework je open-source, lehkรฝ Java Framework pro tvorbu podnikovรฝch webovรฝch aplikacรญ, kterรฝ nabรญzรญ inverzi ล™รญzenรญ, vklรกdรกnรญ zรกvislostรญ, modulรกrnรญ architekturu s pล™ibliลพnฤ› 20 moduly, Spring MVC a aspektovฤ› orientovanรฉ programovรกnรญ pro vytvรกล™enรญ volnฤ› propojenรฉho a testovatelnรฉho softwaru.

  • ???? Definice pruลพiny: Open-source, lehkรฝ Java framework pro tvorbu podnikovรฝch a webovรฝch aplikacรญ.
  • ๐Ÿ”Œ Zรกkladnรญ vlastnosti: Inverze ล™รญzenรญ a vklรกdรกnรญ zรกvislostรญ umoลพลˆujรญ volnรฉ propojenรญ a snadnรฉ testovรกnรญ.
  • ๐Ÿงฉ Modulรกrnรญ Archistruktura: Pล™ibliลพnฤ› 20 modulลฏ pokrรฝvรก jรกdro, beany, kontext, pล™รญstup k datลฏm, web a testovรกnรญ.
  • ๐Ÿ–ฅ๏ธ Jarnรญ MVC: Rรกmec model-view-controller ล™รญzenรฝ front-controllerem DispatcherServlet.
  • โœ‚๏ธ Aspektovฤ› orientovanรฉ programovรกnรญ: Centralizuje prลฏล™ezovรฉ zรกleลพitosti, jako je protokolovรกnรญ, zabezpeฤenรญ a transakce.
  • ๐Ÿ‡ง๐Ÿ‡ท Klady a zรกpory: Umoลพลˆuje podnikovรฉ aplikace a ลกablony zaloลพenรฉ na technologii POJO, ale mลฏลพe mรญt mnoho omezenรญ.

Vรฝukovรฝ program Spring Frameworku

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 zรกroveลˆ snadno pouลพitelnรฝ a poskytuje podporu pro vรฝvojping 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

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รฉ bล™iลกnรญ svalytracvรกnรญ
  • 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

Jarnรญ rรกmec Architecture

Jedno Jรกdro a 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 objektovฤ› orientovanรฉ mapฤ›.ping pojem.
  • Modul JDBC se sklรกdรก z JDBC-abs.tracvrstva ce. Pomรกhรก vรกm s prvky potล™ebnรฝmi k provรกdฤ›nรญ kรณdovรกnรญ souvisejรญcรญho 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

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:

MVC funguje na jaล™e

Jak MVC funguje na jaล™e

  • DispatcherServlet obdrลพรญ poลพadavek.
  • Potรฉ DispatcherServlet komunikuje s HandlerMap.pingTakรฉ ruลกรญ kontrolu spojenou s danรฝm konkrรฉtnรญm poลพadavkem.
  • ล˜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

Prลฏล™ezovรฝ zรกjem

Lze jej takรฉ povaลพovat za nรกvrhovรฝ vzor dynamickรฉho dekorรกtoru. Tento vzor takรฉ nabรญzรญ dalลกรญ chovรกnรญ, kterรฉ lze pล™idat do existujรญcรญ tล™รญdy pomocรญ obalenรญ.ping pลฏvodnรญ tล™รญdy a duplikovรกnรญ jejรญho rozhranรญ a odstranฤ›nรญ originรกlu.

Jรกdro AOP Concepts

Aspektovฤ› orientovanรฉ programovรกnรญ mรก sedm zรกkladnรญch konceptลฏ.

Jรกdro AOP Concepts

Jรกdro AOP Concepts

Pojฤme si je podrobnฤ› probrat:

  • VzhledAspekt je tล™รญda, kterรก umoลพลˆuje implementaci aplikace JEE. Tรฝkรก se to tล™รญd, kterรฉ protรญnajรญ 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 v provรกdฤ›nรญ programu, kde lze aspekt zapojit. Mลฏลพe se jednat o metodu volanou jako vyvolรกnรญ vรฝjimky nebo dokonce o pole, kterรฉ je modifikovรก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.

Instalace Java Jaro

Krok 3) Najdฤ›te 64bitovou verzi.
Kliknฤ›te na tlaฤรญtko โ€žStรกhnout 64-bitโ€œ.

Instalace Java Jaro

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โ€œ.

Instalace Java Jaro

Krok 5) Najdฤ›te 64bitovรฝ odkaz.
Kliknฤ›te na "Windows 64bitovรฝโ€œ odkaz.

Instalace Java Jaro

Krok 6) Stรกhnฤ›te soubor zipu.
Kliknutรญm na tlaฤรญtko โ€žStรกhnoutโ€œ stรกhnete soubor zip.

Instalace Java Jaro

Krok 7) Extracsoubor zip.
Extracstahovรกnรญ zip souboru do konkrรฉtnรญ sloลพky.

Instalace Java Jaro

Krok 8) Vyberte adresรกล™ pracovnรญho prostoru.
Kliknutรญm na tlaฤรญtko โ€žProchรกzetโ€œ vyberte adresรกล™ pracovnรญho prostoru.

Instalace Java Jaro

Krok 9) Vybrat sloลพku.
Kliknutรญm na โ€žVybrat sloลพkuโ€œ vyberte sloลพku.

Instalace Java Jaro

Proces se zobrazรญ, jak je znรกzornฤ›no na nรกsledujรญcรญ obrazovce.

Instalace Java Jaro

Krok 10) Otevล™ete klienta.
Zahรกjenรญ Eclipse Klient Marketplace.

  1. Pล™ejdฤ›te do nabรญdky Nรกpovฤ›da.
  2. Kliknฤ›te na "Eclipse moลพnost Marketpalceโ€œ.

Instalace Java Jaro

Krok 11) Hledat jarnรญ plugin.
Vyhledรกnรญ a instalace pluginu Spring.

  1. Do textovรฉho pole โ€žNajรญtโ€œ napiลกte Jaro.
  2. Kliknฤ›te na ikonu โ€žHledatโ€œ.
  3. Kliknutรญm na tlaฤรญtko โ€žInstalovatโ€œ nainstalujete plugin.

Instalace Java Jaro

Krok 12) Kliknฤ›te na tlaฤรญtko 'potvrdit'.
Potvrฤte vybranรฉ funkce a kliknฤ›te na tlaฤรญtko โ€žPotvrditโ€œ.

Instalace Java Jaro

Krok 13) Pล™ijmฤ›te podmรญnky.
Pล™ijetรญ podmรญnek a instalace softwaru.

  1. Kliknฤ›te na pล™epรญnaฤ โ€žSouhlasรญm s podmรญnkami licenฤnรญch smluvโ€œ.
  2. Klepnutรญm na tlaฤรญtko โ€žDokonฤitโ€œ instalaci dokonฤรญte.

Instalace Java Jaro

Zobrazรญ se uvรญtacรญ obrazovka s postupem instalace softwaru.

Instalace Java Jaro

Krok 14) Restartujte IDE.
Pro restart kliknฤ›te na tlaฤรญtko โ€žRestartovat nynรญโ€œ. Eclipse IDE a aplikujte zmฤ›ny.

Instalace Java Jaro

Zobrazรญ se nรกsledujรญcรญ obrazovka:

Instalace Java Jaro

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 bล™iลกnรญ svalytrack 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รญ.
  • Code je veล™ejnรฉ, je viditelnรฉ pro vลกechny.
  • Takรฉ nenabรญzรญ vlastnรญ funkce.

Zkontrolujte takรฉ: - Top 80 jarnรญch MVC Framework Interview Otรกzky a odpovฤ›di

Nejฤastฤ›jลกรญ dotazy

Spring je komplexnรญ framework vyลพadujรญcรญ ruฤnรญ konfiguraci, zatรญmco Spring Boot je postaven na Spring a nabรญzรญ automatickou konfiguraci, vestavฤ›nรฉ servery a zรกvislosti startovacรญch modulลฏ, coลพ usnadลˆuje vytvรกล™enรญ samostatnรฝch aplikacรญ pล™ipravenรฝch pro produkฤnรญ prostล™edรญ.

Vklรกdรกnรญ zรกvislostรญ (Dependency Injection) je nรกvrhovรฝ vzor, โ€‹โ€‹kde kontejner Spring poskytuje zรกvislosti objektu, mรญsto aby je objekt sรกm vytvรกล™el. Podporuje volnรฉ propojenรญ (loose coupling) a snadnฤ›jลกรญ testovรกnรญ prostล™ednictvรญm inverze ล™รญzenรญ (Inversion of Control).

DispatcherServlet je front controller ve Spring MVC. Pล™ijรญmรก vลกechny poลพadavky a konzultuje HandlerMap.ping a ล™adiฤe, ล™eลกรญ pohled pomocรญ ViewResolveru a vracรญ vykreslenou odpovฤ›ฤ.

Umฤ›lรก inteligence je integrovรกna do Spring aplikacรญ prostล™ednictvรญm knihoven, jako je Spring AI, kterรฉ se pล™ipojujรญ k modelลฏm pro chat, vklรกdรกnรญ a naฤรญtรกnรญ. Spring kontejner spravuje sluลพby umฤ›lรฉ inteligence jako beany v rรกmci aplikace.

Ano. Asistenti umฤ›lรฉ inteligence mohou generovat Spring kontrolery, konfigurovat beany, psรกt REST endpointy a navrhovat vzory vklรกdรกnรญ zรกvislostรญ, helpping vรฝvojรกล™i vytvรกล™ejรญ Spring aplikace rychleji a zรกroveลˆ kontrolujรญ vรฝstup.

Shrลˆte tento pล™รญspฤ›vek takto: