Microservices mit Spring Boot erstellen

In der Java-Welt ist Spring eines der meist genutzten Frameworks.
Spring Boot bietet einen vereinfachten, schnellen Einstieg in die Entwicklung mit Spring.
Wie man loslegt, wird in diesem Tutorial gezeigt.

Spring Tool Suite installieren

In unserer bevorzugten IDE Eclipse 😉,
kann man die Spring Tools 4 einfach über den Eclipse Marketplace installieren.
Dazu im Menu folgendem Klickpfad folgen: Help => Eclipse Marketplace...

In diesem Blog-Post wird beschrieben, wie man Eclipse und Maven installiert und konfiguriert (inklusive Proxy für Konzern Mitarbeiter): eclipse-als-ide-fur-java-spring.html

Dann einfach nach "Spring Tools" suchen und man findet mehrere Versionen der Spring Tools.
Bitte Version 4 bzw. die neuste installieren.

Beim Installieren muss man nicht viel beachten: Lizenzen akzeptieren und Next-Button klicken.

Hier ist es z.B. mit ein paar Screenshots gezeigt:
https://www.codejava.net/ides/eclipse/install-spring-tool-suite-for-existing-eclipse-ide 

In der IntelliJ Ultimate Edition ist Spring auch integriert, dafür verweise ich aber auf:
https://www.jetbrains.com/help/idea/spring-boot.html


Neues Spring Boot Projekt erstellen

Ein neues Spring Boot Projekt kann man in Eclipse mit wenigen Klicks erstellen.
Im Menu folgenden Klickpfad folgen: File => New => Project...

Im New Project Wizard dann einfach nach "Spring" suchen und "Spring Starter Project" auswählen.

Der Spring Tool Wizard öffnet sich dann und man kann im ersten Fenster im Wesentlichen folgende Einstellungen vornehmen:

  • Projekt Name
  • Build Tool (Maven oder Gradle - hier verwenden wir Maven)
  • Java Version

Spring Tool Wizard Schritt 1/2


Nach dem Klick auf den Next-Button, definiert man die Build-/Maven-Dependencies.
Dazu wählt man die Spring Boot Version aus, z.B. 2.5.2 und sucht sich die benötigten Dependencies bzw. Bibliotheken aus.

Für einen schnellen und einfachen Start wird in diesem Tutorial nur "Spring Web" (in "Web") und "Spring Boot Actuator" (in "Ops") ausgewählt.

Danach den Finish-Button klicken und das Projekt wir automatisch erstellt und gebaut.
Das kann etwas dauern, also den Status des Builds in der IDE beobachten.

Spring Tool Wizard Schritt 2/2


Microservice starten

Sobald der durch die IDE automatisch, gestartete Build fertig ist, sollte das Projekt ohne Compile-Fehler angezeigt werden.

Falls es unwahrscheinlicher Weise doch Fehler gibt, kann folgendes helfen:

  • Rechts-Klick auf das neue Projekt => Maven => Update Project... 
  • Im Menu: Project => Build All oder erst Project => Clean... und dann Build All

Danach kann das neue Projekt auch schon gestartet werden, indem man auf das Projekt rechts-klickt => Run As => Spring Boot App.

In der Console erscheinen dann ein paar Log-Einträge, es dürfen keine ERRORs oder Exceptions geloggt werden. Am Ende sollte etwas in dieser Art stehen:
2020-09-14 17:16:31.225  INFO 14804 --- [main] o.s.b.a.e.web.EndpointLinksResolver: Exposing 2 endpoint(s) beneath base path '/actuator'
2020-09-14 17:16:31.275  INFO 14804 --- [main] o.s.b.w.embedded.tomcat.TomcatWebServer: Tomcat started on port(s): 8080 (http) with context path ''
2020-09-14 17:16:31.307  INFO 14804 --- [main] com.example.demo.DemoApplication: Started DemoApplication in 2.217 seconds (JVM running for 3.498)

Zu den Log-Einträgen:

  • "Exposing 2 endpoint(s) beneath base path '/actuator'" sagt, dass der Spring Boot Actuator gestartet und exponiert wurde. Den Actuator haben wir während der Projekt Erstellung bei der Auswahl der Dependencies ins Projekt geladen.
  • "Tomcat started on port(s): 8080 (http) with context path ''" sagt, dass Spring Boot einen embedded Tomcat auf Port 8080 gestartet hat.
    Der Tomcat Application Server ist Teil der Spring Web Dependency.
  • "Started DemoApplication in 2.217 seconds" sagt, dass die Anwendung nun nutzbar ist.

Ruft man nach dem Start im Browser folgende URL auf, sieht man den Spring Boot Microservice bzw. das Actuator Tool von Spring Boot:
http://localhost:8080/actuator

Für weitere Infos zum Spring Boot Actuator sei auf andere Webseiten verwiesen:
https://www.baeldung.com/spring-boot-actuators

RestController als Außenkante eines Microservice

Möchte man nun einen eigenen Service bereitstellen, so kann man das z.B. mit dem RestController von Spring tun. Dazu erstellt man folgende Klasse:

import org.springframework.web.bind.annotation.*;

@RestController
public class DemoController {

@GetMapping("/test")
public String greeting() {
return "I am your RESTController";
}
}

Durch die Annotation @RestContoller instanziert Spring diese Klasse automatisch als Spring Bean - new DemoController() muss vom Entwickler nirgends geschrieben werden. Außerdem exponiert Spring diese Bean ins Netzwerk.

Mit der Annotation @GetMapping wird festgelegt, dass die Methode greeting() ausgeführt wird, wenn man im Browser die URL http://localhost:8080/test aufruft.

Der DemoController ist nun ein guter Startpunkt zum weiteren Kennenlernen von Spring Anwendungen. Im Spring Boot Projekt gibt es die Datei HELP.md, welche interessante Links zur Online-Dokumentation von Spring enthält. Viel Spaß beim Ausprobieren!

Nächste Schritte

Wie es ab hier weitergeht zeige ich in anderen Artikeln in meinem Blog.
Lasst mir gerne einen Kommentar mit euren Wünschen, Anmerkungen oder Fragen da.

Kommentare

Beliebte Posts aus diesem Blog

OpenID Connect mit Spring Boot 3

Authentifizierung in Web-Anwendungen mit Spring Security 6

Reaktive REST-Webservices mit Spring WebFlux