Spring Boot Hello World REST

16.07.2016

Spring Boot - Hello World REST-Example

Hier wird ein minimaler Spring Boot REST-Service (Mikroservice) implementiert, der nur dazu dient zu zeigen, wie einfach ein REST-Service mit Spring Boot aufgesetzt werden kann. Das Maven-Projekt kann als Startpunkt verwendet werden, um weitere Features von Spring Boot und den verschiedenen Bibliotheken im Spring-Ökosystem zu sammeln.

Voraussetzungen:

  • Java 8
  • Maven 3 (nur für den Build)

Spring Boot Applikation erstellen

Los geht es auf der Seite start.spring.io. Wo Web ausgewählt wird, um anschliessend das Projekt-Template mit Generate Project zu erstellen.

Wenn die zip-Datei entpackt ist, dann sieht das Projekt in etwa so aus:

Das Template wird anschliessend in einer IDE oder in einem Text-Editor geöffnet und in der Klasse HelloWorldRestApplication ein Controller ergänzt, der eine REST-Schnittstelle zur Verfügung stellt.

package org.hameister;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import java.util.Collection;

@SpringBootApplication
public class HelloWorldRestApplication {

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


@RestController
class HelloWorld {

	@RequestMapping(value = "/hello", method = RequestMethod.GET, produces = MediaType.TEXT_PLAIN_VALUE)
	ResponseEntity<String> helloWorld() {
		return new ResponseEntity<String>("Hello World!", HttpStatus.OK);
	}
}

Es wird also einfach mit der Annotation @RestController ein REST-Controller ergänzt, der ein RequestMapping für den Pfad /hello hat und beim Aufruf nur den String Hallo World! zurückliefert.

Das Bauen des Maven Projekts kann in der IDE durchgeführt werden oder auf der Konsole mit mvn install. Das Resultat ist eine jar-Datei, die im Unterverzeichnis target liegt und HelloWorldRest-0.0.1-SNAPSHOT.jar heißt.

Starten läßt sich der Service direkt aus der IDE oder auf der Console mit java -jar HelloWorldRest-0.0.1-SNAPSHOT.jar

Aufrufen läßt sich der REST-Service einfach im Bowser über die URL http://localhost:8080/hello.

Wenn alles geklappt hat, dann wird Hello World! angezeigt.

Anmerkungen:

  • Bei dem Projekt handelt es sich um ein Maven-Projekt, bei dem alle benötigten Abhängigkeiten, d.h. weitere Bibliotheken in der Datei pom.xml verwaltet werden.
  • In der pom.xml wurde festgelegt, dass das Resultat des Builds eine jar-Datei ist.
  • In der jar-Datei ist ein eingebetteter Tomcat enthalten, der beim Start hochgefahren wird.
  • Man kann in der pom-Dateiauch für das packaging den Wert war eintragen. Allerdings muss man sich dann selbst um dem Tomcat kümmern. Der ist dann nicht mehr Bestandteil der jar-Datei.
  • Wenn man nichts ändert, dann startet der Tomcat auf Port 8080.