Výukový program pre jarné MVC

1. Prehľad

Toto je jednoduché Jarný tutoriál MVC ukazuje, ako nastaviť jarný projekt MVC, a to s konfiguráciou založenou na prostredí Java, ako aj s konfiguráciou XML.

Závislosti Maven pre projekt Spring MVC sú podrobne popísané v článku Spring MVC dependencies.

2. Čo je jarná MVC?

Ako už názov napovedá, je to modul jarného rámca zaoberajúci sa vzorom Model-View-Controller alebo MVC. Spája všetky výhody vzoru MVC s pohodlím jari.

Jar implementuje MVC so vzorom predného ovládača pomocou svojho DispatcherServlet.

Stručne povedané, DispatcherServlet plní úlohu hlavného kontrolóra pri smerovaní požiadaviek na určené miesto. Model nie je nič iné ako údaje našej aplikácie a pohľad predstavuje ktorýkoľvek z rôznych motorov šablón. Na JSP sa v našom príklade pozrieme o chvíľu.

3. Jarné MVC pomocou konfigurácie Java

Všetko, čo musíme urobiť, je povoliť podporu Spring MVC prostredníctvom konfiguračnej triedy Java pridať @EnableWebMvc anotácia:

@EnableWebMvc @Configuration verejná trieda WebConfig {/// ...}

Týmto nastavíme základnú podporu, ktorú potrebujeme pre projekt MVC, napríklad registráciu radičov a mapovaní, prevádzače typov, podporu overovania, prevádzače správ a spracovanie výnimiek.

Ak chceme prispôsobiť túto konfiguráciu, musíme implementovať WebMvcConfigurer rozhranie:

@EnableWebMvc @Configuration verejná trieda WebConfig implementuje WebMvcConfigurer {@Override public void addViewControllers (ViewControllerRegistry registry) {registry.addViewController ("/"). SetViewName ("index"); } @Bean public ViewResolver viewResolver () {InternalResourceViewResolver bean = nový InternalResourceViewResolver (); bean.setViewClass (JstlView.class); bean.setPrefix ("/ WEB-INF / view /"); bean.setSuffix (". jsp"); spätná fazuľa; }}

V tomto príklade sme zaregistrovali a ViewResolver fazuľa, ktorá sa vráti .jsp výhľady z / WEB-INF / zobraziť adresár.

Tu je veľmi dôležité môžeme zaregistrovať radiče zobrazenia, ktoré vytvárajú priame mapovanie medzi adresou URL a názvom zobrazenia pomocou ViewControllerRegistry. Týmto spôsobom nie je medzi nimi potrebný žiadny radič.

Ak chceme definovať a skenovať aj triedy radičov, môžeme pridať @ComponentScan anotácia k balíku, ktorý obsahuje radiče:

@EnableWebMvc @Configuration @ComponentScan (basePackages = {"com.baeldung.web.controller"}) verejná trieda WebConfig implementuje WebMvcConfigurer {// ...}

Na zavedenie aplikácie, ktorá načíta túto konfiguráciu, potrebujeme tiež triedu inicializátora:

public class MainWebAppInitializer implementuje WebApplicationInitializer {@Override public void onStartup (final ServletContext sc) hodí ServletException {AnnotationConfigWebApplicationContext root = nový AnnotationConfigWebApplicationContext (); root.scan ("com.baeldung"); sc.addListener (nový ContextLoaderListener (root)); ServletRegistration.Dynamic appServlet = sc.addServlet ("mvc", nový DispatcherServlet (nový GenericWebApplicationContext ())); appServlet.setLoadOnStartup (1); appServlet.addMapping ("/"); }}

Upozorňujeme, že pre verzie staršie ako jar 5 musíme používať WebMvcConfigurerAdapter triedy namiesto rozhrania.

4. Jarné MVC pomocou konfigurácie XML

Alternatívne k vyššie uvedenej konfigurácii Java môžeme použiť aj čisto XML konfiguráciu:

Ak chceme použiť čisto XML konfiguráciu, budeme tiež musieť pridať a web.xml súbor na zavedenie aplikácie. Viac podrobností o tomto prístupe nájdete v našom predchádzajúcom článku.

5. Kontrolór a pohľady

Pozrime sa na príklad základného radiča:

@Controller verejná trieda SampleController {@GetMapping ("/ sample") public String showForm () {return "sample"; }}

A zodpovedajúcim zdrojom jsp je sample.jsp spis:

Zobrazovacie súbory založené na JSP sú umiestnené pod /WEB-INF priečinok projektu, takže sú prístupné iba pre infraštruktúru Spring, a nie priamym prístupom k URL.

6. Jarná MVC s bootom

Spring Boot je doplnkom Spring Platform, vďaka ktorému je veľmi ľahké začať a vytvárať samostatné aplikácie na úrovni výroby. Topánka Cieľom nie je nahradiť pružinu, ale uľahčiť prácu s ňou rýchlejšie a ľahšie.

6.1. Jarné štartéry

Nový rámec poskytuje pohodlné štartovacie závislosti - čo sú deskriptory závislostí ktoré môžu priniesť určitú technológiu potrebnú pre určitú funkčnosť.

Majú výhodu v tom, že už nemusíme špecifikovať verziu pre každú závislosť, ale naopak umožňujeme štartérovi spravovať závislosti za nás.

Najrýchlejší spôsob, ako začať, je pridať rodiča-boot-starter-rodič pom.xml:

 org.springframework.boot spring-boot-starter-parent 2.2.2.RELEASE 

Toto sa postará o správu závislostí.

6.2. Vstupný bod pre jarné zavedenie

Každá aplikácia postavená pomocou Jarná topánka je potrebné iba definovať hlavný vstupný bod. Toto je zvyčajne trieda Java s hlavný metóda s poznámkami @SpringBootApplication:

@SpringBootApplication verejná trieda Aplikácia {public static void main (String [] args) {SpringApplication.run (Application.class, args); }} 

Táto anotácia pridáva nasledujúce ďalšie anotácie:

  • @ Konfigurácia - ktorý označuje triedu ako zdroj definícií fazule
  • @EnableAutoConfiguration - ktorý hovorí rámcu, aby automaticky pridával fazuľa na základe závislostí na ceste k triede
  • @ComponentScan Ktorý vyhľadáva ďalšie konfigurácie a fazuľa v rovnakom balíku ako Aplikácia triedy alebo nižšie

S Spring Boot môžeme nastaviť frontend pomocou Thymeleaf alebo JSP bez použitia ViewResolver, ako je definované v sekcii 3. Pridaním spring-boot-starter-thymeleaf závislosť na našom pom.xml, Thymeleaf bude povolený a nie je potrebná žiadna ďalšia konfigurácia.

Zdrojový kód pre aplikáciu Boot je ako vždy k dispozícii na GitHub.

Nakoniec, ak chcete začať s programom Spring Boot, pozrite si tu naše referenčné úvodné slovo.

7. Záver

V tomto príklade sme nakonfigurovali jednoduchý a funkčný projekt Spring MVC pomocou konfigurácie Java.

Implementáciu tohto jednoduchého tutoriálu Spring MVC nájdete v projekte GitHub.

Keď projekt prebieha lokálne, sample.jsp možno nájsť na // localhost: 8080 / spring-mvc-basics / sample.