Start en webapplikasjon med Spring 5

REST Topp

Jeg kunngjorde nettopp det nye Lær våren kurs, med fokus på det grunnleggende i vår 5 og vårstøvel 2:

>> KONTROLLER KURSET

1. Oversikt

Opplæringen illustrerer hvordan du gjør det Start en webapplikasjon med våren.

Vi ser på Spring Boot-løsningen for bootstrapping av applikasjonen og ser også en ikke-Spring Boot-tilnærming.

Vi bruker primært Java-konfigurasjon, men ser også på deres tilsvarende XML-konfigurasjon.

2. Bootstrapping ved hjelp av Spring Boot

2.1. Maven avhengighet

Først trenger vi våravhengighet-start-nettavhengighet:

 org.springframework.boot spring-boot-starter-web 2.1.1.RELEASE 

Denne forretten inkluderer:

  • vår-nett og vår-webmvc modul som vi trenger for våren vår søknad
  • en Tomcat-startpakke slik at vi kan kjøre webapplikasjonen vår direkte uten å eksplisitt installere noen server

2.2. Opprette en Spring Boot-applikasjon

Den enkleste måten å komme i gang med Spring Boot er å lage en hovedklasse og kommentere den med @SpringBootApplication:

@SpringBootApplication public class SpringBootRestApplication {public static void main (String [] args) {SpringApplication.run (SpringBootRestApplication.class, args); }}

Denne enkeltkommentaren tilsvarer bruk @Konfigurasjon, @EnableAutoConfiguration, og @ComponentScan.

Som standard skanner den alle komponentene i samme pakke eller under.

Deretter, for Java-basert konfigurasjon av vårbønner, må vi opprette en konfigurasjonsklasse og kommentere den med @Konfigurasjon kommentar:

@Configuration offentlig klasse WebConfig {}

Denne merknaden er den viktigste gjenstanden som brukes av den Java-baserte vårkonfigurasjonen; det er i seg selv meta-kommentert med @Komponent, som gjør de merkede klassene til standardbønner og som sådan også kandidater for komponentskanning.

Hovedformålet med @Konfigurasjon klasser skal være kilder til bønnedefinisjoner for Spring IoC Container. For en mer detaljert beskrivelse, se de offisielle dokumentene.

La oss også se på en løsning ved hjelp av kjernen vår-webmvc bibliotek.

3. Bootstrapping ved hjelp av vår-webmvc

3.1. Maven avhengigheter

Først trenger vi avhengigheten av våren-webmvc:

 org.springframework spring-webmvc 5.0.0.RELEASE 

3.2. Den Java-baserte nettkonfigurasjonen

Deretter legger vi til konfigurasjonsklassen som har @Konfigurasjon kommentar:

@Configuration @EnableWebMvc @ComponentScan (basePackages = "com.baeldung.controller") offentlig klasse WebConfig {}

Her, i motsetning til Spring Boot-løsningen, må vi definere det eksplisitt @EnableWebMvc for å sette opp standard Spring MVC-konfigurasjoner og @ComponentScan for å spesifisere pakker som skal skannes etter komponenter.

De @EnableWebMvc merknader gir Spring Web MVC-konfigurasjon, slik som å sette opp senderen servlet, slik at @Kontrollør og @RequestMapping merknader og sette opp andre standardinnstillinger.

@ComponentScan konfigurerer komponentskanningsdirektivet, og spesifiserer pakkene som skal skannes.

3.3. Initializer-klassen

Deretter må vi legg til en klasse som implementerer WebApplicationInitializer grensesnitt:

offentlig klasse AppInitializer implementerer WebApplicationInitializer {@Override public void onStartup (ServletContext container) kaster ServletException {AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext (); context.scan ("com.baeldung"); container.addListener (ny ContextLoaderListener (kontekst)); ServletRegistration.Dynamic dispatcher = container.addServlet ("mvc", ny DispatcherServlet (kontekst)); dispatcher.setLoadOnStartup (1); dispatcher.addMapping ("/"); }}

Her skaper vi en vårkontekst ved hjelp av AnnotationConfigWebApplicationContext klasse, noe som betyr at vi bare bruker kommentarbasert konfigurasjon. Deretter spesifiserer vi pakkene som skal skannes etter komponenter og konfigurasjonsklasser.

Til slutt definerer vi inngangspunktet for webapplikasjonen - DispatcherServlet.

Denne klassen kan helt erstatte web.xml fil fra <3.0 Servlet-versjoner.

4. XML-konfigurasjon

La oss også ta en rask titt på den tilsvarende XML-nettkonfigurasjonen:

Vi kan erstatte denne XML-filen med WebConfig klasse over.

For å starte applikasjonen kan vi bruke en Initializer-klasse som laster XML-konfigurasjonen eller en web.xml-fil. For mer informasjon om disse to tilnærmingene, sjekk ut vår forrige artikkel.

5. Konklusjon

I denne artikkelen så vi på to populære løsninger for bootstrapping av en Spring-webapplikasjon, en ved bruk av Spring Boot webstarter og en annen ved hjelp av kjerne-vår-webmvc-biblioteket.

I neste artikkel om REST with Spring, dekker jeg oppsett av MVC i prosjektet, konfigurering av HTTP-statuskoder, nyttelast Marshalling og innholdsforhandling.

Som alltid er koden presentert i denne artikkelen tilgjengelig på Github. Dette er et Maven-basert prosjekt, så det skal være enkelt å importere og kjøre som det er.

HVILLE bunnen

Jeg kunngjorde nettopp det nye Lær våren kurs, med fokus på det grunnleggende i vår 5 og vårstøvel 2:

>> KONTROLLER KURSET

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