Programmēšana

5. pavasara ietvara apgūšana, 1. daļa: pavasara MVC

Spring MVC ir Spring framework tradicionālā bibliotēka Java tīmekļa lietojumprogrammu veidošanai. Tas ir viens no populārākajiem tīmekļa ietvariem, lai izveidotu pilnībā funkcionējošas Java tīmekļa lietojumprogrammas un RESTful tīmekļa pakalpojumus. Šajā apmācībā jūs saņemsiet pārskatu par Spring MVC un uzzināsiet, kā veidot Java tīmekļa lietojumprogrammas, izmantojot Spring Boot, Spring Initializr un Thymeleaf.

lejupielādēt Lejupielādēt kodu Iegūstiet avotu kodu, piemēram, lietojumprogrammām šajā apmācībā. Steven Haines izveidoja JavaWorld

Pavasara zābaks ar pavasara Initializr

Mēs ātri atjaunosim mūsu pavasara MVC tīmekļa lietojumprogrammu, izmantojot Spring Boot un Spring Initializr. Ņemot vērā izveidojamā lietojumprogrammas veida ievadi, Spring Initializr izmanto visbiežāk sastopamās atkarības un noklusējumus, lai iestatītu un konfigurētu pamata pavasara sāknēšanas lietojumprogrammu. Varat arī pievienot pielāgotas atkarības, un Spring Initializr tās iekļaus un pārvaldīs, nodrošinot versiju saderību gan ar trešo pušu programmatūru, gan ar Spring. Spring Boot lietojumprogrammas darbojas atsevišķi, neprasot nodrošināt izpildlaika vidi.

Šajā gadījumā, tā kā mēs veidojam tīmekļa lietojumprogrammu, Spring Boot automātiski iekļaus un konfigurēs Tomcat kā daļu no lietotnes izpildlaika. Mēs varam arī pielāgot lietotni, pievienojot H2 datu bāzes draiveri mūsu Maven POM failam. Pēc tam pavasara sāknēšana automātiski izveidos iegulto datu bāzi un Datu avots piemērs lietojumprogrammas kontekstā. Kad atkarības ir iestatītas, Spring Boot nodrošinās lietojumprogrammas noklusējuma konfigurācijas. Protams, mēs varam mainīt konfigurācijas, ja vēlamies, taču, pateicoties Spring Boot, mums ir sākums: pilnībā konfigurēta, strādājoša lietojumprogramma tieši no kastes.

Kad būsim atlasījuši un konfigurējuši savas atkarības, mēs šīs izvēles nodosim Spring Initializr, kas nodrošinās lejupielādējamu ZIP failu, kas satur bāzes pavasara sāknēšanas projektu.

Pavasara MVC ar H2 datu bāzes dzinēju

Mēs sāksim, izveidojot pamata MVC tīmekļa lietojumprogrammu, kas datus saglabā H2 iegultā datu bāzē.

1. solis. Iestatiet un konfigurējiet lietotni

Pārejiet uz Spring Initializr plkst sākums.pavasaris.io un atlasiet Ģenerējiet Maven projektu ar Java un Spring Boot 2.0.X, kur X ir jaunākā Spring Boot versija (2.0.3 šī rakstīšanas laikā). Pārliecinieties, ka esat atlasījis Spring Boot 2.x, lai varētu ieviest Spring Web MVC 5. Spring Boot 1.4 un Spring Boot 1.5 ieviesīs 4. pavasari.

Ievadiet grupas nosaukumu ar formātu, kas atbilst jūsu tīmekļa adresei, piemēram com.geekcap.javaworldun ievadiet artefakta nosaukumu, piemēram, spring5mvc-piemērs. 1. attēlā parādīta mana konfigurācija.

Stīvens Heinss

Lai pievienotu atkarības tīmekļa lietotnei, varat vai nu ievadīt ar komatiem atdalītu atkarību sarakstu Meklēt atkarības vai noklikšķiniet uz Pārslēdzieties uz pilno versiju. Mēs izvēlēsimies vieglāku maršrutu, noklikšķinot uz Pārslēdzieties uz pilno versiju. Atkarības ir sadalītas grupās, piemēram, Core, Web un Template Engines. Šajā piemērā atzīmējiet izvēles rūtiņas: Tīmeklis -> tīmeklis, veidņu motori -> Thymeleaf, SQL -> JPA un SQL -> H2. Lūk, ko katra no šīm atlasēm pievienos lietojumprogrammai:

  • Tīmeklis: pavasara MVC un Tomcat
  • Thymeleaf: Thymeleaf tīmekļa veidņu dzinējs
  • JPA: pavasara JPA, hibernācijas un pavasara dati
  • H2: H2 iegultā datu bāze

Kad esat pabeidzis, noklikšķiniet uz Ģenerēt projektu pogu lapas apakšdaļā. Pavasara Initializr izveidos gatavu ZIP failu ar visiem nepieciešamajiem projekta avotiem, kurus jūs varat lejupielādēt.

2. solis. Importējiet pavasara Initializr projektu savā IDE

Izvelciet ZIP failu no pavasara Initializr, pēc tam importējiet projektu iecienītākajā IDE. Piemēram, lai importētu projektu IntelliJ, izvēlieties Fails -> Jauns projekts, kā parādīts 2. attēlā.

Stīvens Heinss

3. solis. Iestatiet savu Maven POM

Pēc tam pārejiet uz Importēt projektu no ārējā moduļa, izvēlieties Mavenun nospiediet Nākamais. Noteikti izvēlieties Java 1.8 projekta SDK, pēc tam nospiediet Pabeigt.

Startera lietotne Spring Boot

Tagad apskatīsim Spring Boot startera lietojumprogrammu, kuru līdz šim esam radījuši (minimāli) centieni.

Lai sāktu, 1. sarakstā tiek parādīts Maven POM fails.

Saraksts 1. Maven pom.xml

   4.0.0 com.geekcap.javaworld spring5mvc-example 0.0.1-SNAPSHOT jar spring5mvc-example Demonstrācijas projekts Spring Boot org.springframework.boot spring-boot-starter-parent 2.0.3. RELEASE UTF-8 UTF-8 1,8 org .springframework.boot spring-boot-starter-data-jpa org.springframework.boot spring-boot-starter-thymeleaf org.springframework.boot spring-boot-starter-web com.h2database h2 izpildlaika org.springframework.boot spring-boot -starter-test tests org.springframework.boot spring-boot-maven-plugin 

Ievērojiet, ka POM failā tiek izmantots īpašs vecāku POM: pavasaris-boot-starter-vecāks. Mēs izmantosim vecāku POM, lai pārvaldītu visu mūsu atkarību versijas un pārliecinātos, ka versijas ir saderīgas. POM faila beigās esošās krātuves atsaucas uz pavasari momentuzņēmums un pagrieziena punkts krātuves. Mums tie ir nepieciešami, jo Spring Boot 2.x joprojām ir nozīmīgs izlaidums šī raksta tapšanas laikā.

Atkarības ir diezgan minimālas, un lielākoties tās ir ievadītas pavasaris-boot-starteris:

  • spring-boot-starter-data-jpa
  • pavasaris-boot-starter-thymeleaf
  • pavasaris-boot-starter-web
  • pavasara sāknēšanas startera pārbaude

Katra no šīm startera atkarībām ienes visas vajadzīgās apakšatkarības. 3. attēlā parādīts daļēji paplašinātais atkarības skats IntelliJ.

Stīvens Heinss

POM failā ir šādas atkarības:

  • spring-boot-starter-data-jpa ietver hibernācijas un pavasara datus.
  • pavasaris-boot-starter-thymeleaf ietver Thymeleaf veidņu motoru.
  • pavasaris-boot-starter-web ietilpst pavasaris-zābaks-starteris-runcis, Apache Tomcat iegultā versija.
  • pavasaris-boot-starter-json ietver Džeksona JSON bibliotēkas.
  • pavasaris-tīmeklis un pavasaris-webmvc ietver pavasara MVC.
  • pavasara sāknēšanas startera pārbaude ietver tādu bibliotēku kā JUnit un Mockito testēšanu.

Kad Spring Boot redz šīs atkarības CLASSPATH, tā sāk automātisko konfigurēšanu. Piemēram, kad atrod pavasaris-boot-starter-web, tas izveido iegulto Tomcat versiju, un, atrodot H2 un pavasaris-boot-starter-jpa tā izveido iegultu H2 datu bāzi un hibernācijas režīmu EntityManager. Pēc tam tas vadu EntityManager pavasara datos.

Spring Boot arī izveido vienu klasi, kuru var izmantot lietojumprogrammas palaišanai. Lietojumprogrammas parauga klase ir parādīta 2. sarakstā.

Saraksts 2. Spring5mvcExampleApplication.java

 pakete com.geekcap.javaworld.spring5mvcexample; importēt org.springframework.boot.SpringApplication; importēt org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication publiskā klase Spring5mvcExampleApplication {public static void main (String [] args) {SpringApplication.run (Spring5mvcExampleApplication.class, args); }} 

Šī klase izmanto SpringApplication.run () metode, kas iet klasē, lai palaistu (Pavasaris5mvcExampleApplication šajā piemērā). The @SpringBootApplication anotācijā ir šādas anotācijas:

  • @Konfigurācija informē Pavasari, ka Pavasaris5mvcExampleApplication klase satur konfigurācijas informāciju. (Šo anotāciju var izmantot, lai izveidotu pupiņas, kas tiks reģistrētas pavasara kontekstā.)
  • @EnableAutoConfiguration liek Springam automātiski konfigurēt resursus no CLASSPATH atrodamajām atkarībām, piemēram, H2 un Tomcat.
  • @ComponentScan liek Springam skenēt paketes CLASSPATH zem pašreizējās pakotnes (com.geekcap.javaworld.spring5mvcexample) attiecībā uz pavasara komentāriem, piemēram, @Apkalpošana un @Kontrolieris.

Pavasaris skenē CLASSPATH un automātiski izveido komponentus, piemēram, iegulto Tomcat serveri un H2 datu bāzi. Pēc tam tā aizpilda pavasara kontekstu ar lietojumprogrammu komponentiem, kas atrodami pakotņu skenēšanā. Būtībā Spring Boot ļauj ļoti viegli atlasīt un konfigurēt jūsu lietojumprogrammai nepieciešamos pakalpojumus, komponentus, kontrolierus, entītijas un tā tālāk. Kad esat to izdarījis, Pavasaris tos automātiski atradīs, padarīs tos pieejamus pavasara kontekstā un automātiski ierakstīs visu kopā.

Mēs esam ieguvuši pavasara sāknēšanas startera projekta iestatīšanu un esam gatavi darbam. Nākamajā sadaļā mēs izveidosim pavasara MVC komponentus mūsu Java tīmekļa lietojumprogrammai.

Kāds ir pavasara konteksts?

The Pavasara konteksts ir visu pieejamo pavasara pupiņu reģistrs. Klases tiek identificētas kā pavasara pupiņas, anotējot tās ar īpašām pavasara anotācijām. Piemēri ietver @Apkalpošana, kas identificē uzņēmējdarbības pakalpojumu, @Kontrolieris, kas identificē pavasara MVC kontrolieri (t.i., apstrādā tīmekļa pieprasījumus), un @Entity, kas ir JPA anotācija, ko izmanto, lai identificētu klases, kas ir kartētas datu bāzes tabulās.

Kad šīs pupiņas ir anotētas, tās jāreģistrē kontekstā Spring, ko Spring Boot dara, veicot visu jūsu projekta paketēs esošo klašu skenēšanu. Kad tiek veidots pavasara konteksts, tas ievieš vadības inversijas (IoC) dizaina modeli, izmantojot atkarības injicēšanu: kad pavasara pupiņai ir nepieciešama atkarība, piemēram, pakalpojums vai repozitorijs, pupiņa var vai nu definēt konstruktoru, kas pieņem atkarīgā pupiņa vai tā var izmantot @Autowired anotācija pateikt Pavasarim, ka šī atkarība ir nepieciešama. Pavasaris atrisina visas atkarības un "automātiski izveido" lietojumprogrammu.

Atkarības iesmidzināšana ir spēcīgs dizaina modelis, jo tā vietā, lai izveidotu un pārvaldītu atkarības kodā - kas var būt netīrs un noved pie cieši saistītām klasēm, tā vietā jūs varat deleģēt vadību Spring konteineram. Jūsu klase vienkārši paziņo konteineram, kādas atkarības tam jāpalaiž, un konteiners izpildes laikā nodrošina jūsu klasei atbilstošās atkarības.

Par pavasara MVC 5

Pavasara MVC ievieš populāro Model-View-Controller modeli, kuru, iespējams, esat redzējis citās tīmekļa sistēmās. Model-View-Controller modelis sadala bažas trīs kategorijās:

  • Modelis apzīmē jūsu domēna objektus.
  • Skats renderē jūsu modeli skatam, piemēram, HTML lapai.
  • Kontrolieris atrodas starp jūsu skatu un modeli un skata izmaiņu pieprasījumus pārveido modeļa izmaiņās un otrādi. Praktiski kontrolieris pieņem ienākošos pieprasījumus, potenciāli atjaunina modeli un nosūta jūsu modeļa objektus "skatam", lai tie tiktu atveidoti klientam.

Pavasara MVC kontrolierus identificē pēc @Kontrolieris anotācija un pievienota a @RequestMapping anotācija. Anotācija nosaka HTTP darbības vārdu (standarta HTTP komandas, piemēram, GET, POST, PUT un DELETE) un URI, kuriem tiks izmantota pieprasījuma kartēšanas metode. 4. pavasaris ieviesa saīsnes pieprasījumu kartēšanu, kas visu padara vēl vieglāku. Mēs izmantosim šos kartējumus -@GetMapping, @ PostMapping, @PutMapping, @PatchMapping, un @DeleteMapping- par mūsu piemēru.

Modelis pavasara MVC

Mūsu lietojumprogrammai mēs definēsim vienkāršu modeļa objektu a Logrīks, saglabājiet to iegultā H2 datu bāzē un izveidojiet kontrolieri, lai pārvaldītu logrīkus. Sāksim ar Logrīks klase, kas parādīta 3. sarakstā.

$config[zx-auto] not found$config[zx-overlay] not found