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

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

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

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 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

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

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.

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) Extrahujte soubor zip.
Extrahujte staลพenรฝ zip 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 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

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