Start een webapplicatie met Spring 5

REST Top

Ik heb zojuist het nieuwe aangekondigd Leer de lente natuurlijk, gericht op de basisprincipes van Spring 5 en Spring Boot 2:

>> BEKIJK DE CURSUS

1. Overzicht

De tutorial laat zien hoe Start een webapplicatie met Spring.

We zullen kijken naar de Spring Boot-oplossing voor het opstarten van de applicatie en zien ook een niet-Spring Boot-benadering.

We gebruiken voornamelijk Java-configuratie, maar kijken ook naar hun equivalente XML-configuratie.

2. Bootstrapping met Spring Boot

2.1. Afhankelijkheid van Maven

Ten eerste hebben we de spring-boot-starter-web-afhankelijkheid nodig:

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

Deze starter bevat:

  • lente-web en de lente-webmvc module die we nodig hebben voor onze Spring webapplicatie
  • een Tomcat-starter zodat we onze webapplicatie rechtstreeks kunnen draaien zonder expliciet een server te installeren

2.2. Een Spring Boot-applicatie maken

De meest eenvoudige manier om aan de slag te gaan met Spring Boot is door een hoofdklasse te maken en deze te annoteren @SpringBootApplication:

@SpringBootApplication openbare klasse SpringBootRestApplication {openbare statische leegte hoofd (String [] args) {SpringApplication.run (SpringBootRestApplication.class, args); }}

Deze enkele annotatie komt overeen met het gebruik van @Configuratie, @EnableAutoConfiguration, en @BuienRadarNL

Standaard worden alle componenten in hetzelfde pakket of lager gescand.

Vervolgens moeten we voor op Java gebaseerde configuratie van Spring Beans een configuratieklasse maken en deze annoteren met @Configuratie annotatie:

@Configuration openbare klasse Webconfiguratie {}

Deze annotatie is het belangrijkste artefact dat wordt gebruikt door de op Java gebaseerde Spring-configuratie; het is zelf meta-annotatie met @Component, waardoor de geannoteerde klassen standaardbonen zijn en als zodanig ook kandidaten voor component-scanning.

Het belangrijkste doel van @Configuratie klassen moeten bronnen zijn van bean-definities voor de Spring IoC-container. Zie de officiële documenten voor een meer gedetailleerde beschrijving.

Laten we ook eens kijken naar een oplossing met behulp van de kern lente-webmvc bibliotheek.

3. Bootstrapping met spring-webmvc

3.1. Afhankelijkheden van Maven

Ten eerste hebben we de spring-webmvc-afhankelijkheid nodig:

 org.springframework spring-webmvc 5.0.0.RELEASE 

3.2. De op Java gebaseerde webconfiguratie

Vervolgens voegen we de configuratieklasse toe met de extensie @Configuratie annotatie:

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

Hier zullen we, in tegenstelling tot de Spring Boot-oplossing, expliciet moeten definiëren @EnableWebMvc voor het instellen van standaard Spring MVC-configuraties en @BuienRadarNL om pakketten op te geven die moeten worden gescand op componenten.

De @EnableWebMvc annotatie biedt de Spring Web MVC-configuratie, zoals het instellen van de dispatcher-servlet, waardoor de @Controller en de @RequestMapping annotaties en het instellen van andere standaardinstellingen.

@BuienRadarNL configureert de scaninstructie van de componenten, waarbij de pakketten worden gespecificeerd die moeten worden gescand.

3.3. De Initializer-klasse

Vervolgens moeten we voeg een klasse toe die de WebApplicationInitializer koppel:

openbare klasse AppInitializer implementeert WebApplicationInitializer {@Override public void onStartup (ServletContext-container) gooit ServletException {AnnotationConfigWebApplicationContext context = nieuwe AnnotationConfigWebApplicationContext (); context.scan ("com.baeldung"); container.addListener (nieuwe ContextLoaderListener (context)); ServletRegistration.Dynamic dispatcher = container.addServlet ("mvc", nieuwe DispatcherServlet (context)); dispatcher.setLoadOnStartup (1); dispatcher.addMapping ("/"); }}

Hier maken we een Spring-context met behulp van de AnnotationConfigWebApplicationContext class, wat betekent dat we alleen op annotaties gebaseerde configuratie gebruiken. Vervolgens specificeren we de pakketten die moeten worden gescand op componenten en configuratieklassen.

Ten slotte definiëren we het toegangspunt voor de webapplicatie - het DispatcherServlet.

Deze klasse kan het web.xml bestand van <3.0 Servlet-versies.

4. XML-configuratie

Laten we ook snel kijken naar de equivalente XML-webconfiguratie:

We kunnen dit XML-bestand vervangen door de Webconfiguratie klasse hierboven.

Om de applicatie te starten, kunnen we een Initializer-klasse gebruiken die de XML-configuratie of een web.xml-bestand laadt. Bekijk ons ​​vorige artikel voor meer informatie over deze twee benaderingen.

5. Conclusie

In dit artikel hebben we gekeken naar twee populaire oplossingen voor het opstarten van een Spring-webtoepassing, een met behulp van de Spring Boot-webstarter en een andere met behulp van de core spring-webmvc-bibliotheek.

In het volgende artikel over REST met Spring behandel ik het opzetten van MVC in het project, de configuratie van de HTTP-statuscodes, het rangschikken van payloads en het onderhandelen over content.

Zoals altijd is de code die in dit artikel wordt gepresenteerd, beschikbaar op Github. Dit is een op Maven gebaseerd project, dus het zou gemakkelijk moeten kunnen worden geïmporteerd en uitgevoerd zoals het is.

REST onder

Ik heb zojuist het nieuwe aangekondigd Leer de lente natuurlijk, gericht op de basisprincipes van Spring 5 en Spring Boot 2:

>> BEKIJK DE CURSUS