Spring Boot / Spring Cloud

Moderne Enterprise-Lösungen bis hin zu Microservices

Das Spring-Framework ist ursprünglich gesehen für den Einsatz in klassischen Java-Enterprise-Szenarien entworfen worden. Inzwischen hat sich jedoch ein ganzes Ökosystem rund um Spring herum gebildet, das ebenfalls Beachtung verdient. Mit Spring Boot / Cloud ist z. B. eine Microservice-Architektur recht einfach möglich: Microservices sind dadurch gekennzeichnet, dass jeder Service im Detail betrachtet einen mehr oder weniger isolierten Bereich einer Anwendung abbildet.

Mittels Domain Driven Design richtig konzipiert, ist die umzusetzende Fachlichkeit regelmäßig leicht verständlich und beherrschbar. Das Wesen von Microservices besteht darin, dass einzelne Services einfacher handhabbarer sind als monolithische Software. Im Idealfall können Microservices unabhängig voneinander erweitert, ausgetauscht und skaliert werden. Anwendungen funktionieren auch dann noch, wenn einzelne Services nicht verfügbar sind. Sie bilden die fachlichen Blöcke einer Anwendung, statt alles aus „einem (schwer veränderlichen) Guss“ zu erstellen.

Was und wofür Spring ist

  • Kurzer Abriss über das Spring-Framework
  • Model-View-Controller-Pattern (MVC)
  • Dependency-Injection / Inversion of Control

Klassische Webanwendungen mit dem Spring Framework vs. Spring Boot

  • Servlet-Container und WAR-Dateien („die alte Welt“)
  • JAR-Dateien mit self-contained Servlet-Containern („die neue Welt“)

Installation und Vorbereitung

  • Spring Boot CLI
  • Nützliche IDEs für die Entwicklung mit Spring Boot
  • Dependency-Management (Gradle bzw. Maven)
  • Quick-Start mit start.spring.io
  • Kleinstmögliche Beispielanwendung mit einem Controller-Endpunkt
  • Erläuterung der Annotations
    • AutoConfiguration
    • Controller
    • RequestMapping

Spring Boot Starters

  • Wichtige Dependency-Sammlungen, die Funktionen out-of-the-box bereitstellen
    • Auto-Configuration
    • Logging
    • Datenbankanbindung und ORM
    • JSON-Unterstützung
    • E-Mail
    • Sicherheit
    • Test
    • REST und MVC
    • Monitoring
    • Hypermedia-driven REST

Konfigurationsmöglichkeiten

  • Externalized configuration
  • Type-safe configuration
  • Environment / Application property files
  • Profilbasierte Properties
  • Simple Log-Konfiguration

Testen

  • Einführung in das Unit Testing und Integration in Spring Boot
  • Erstellen von Unit- und Integration-Tests mit folgenden Bibliotheken
    • JUnit
    • Hamcrest
    • Mockito

Datenbanken mit Spring Data

  • Datenbankanbindungen
  • Implementierung im Code
  • Testing

Sicherheit mit Spring Security

  • Konfiguration
  • Absicherung von Endpunkten

Model-View-Controller Architekturen und REST

  • Integration Spring MVC
    • Auto Configuration
    • Message Converters
    • Statischer Inhalt
    • Error Configuration
  • „Making it RESTful“
    • Automatisierte Erzeugung von REST-Endpunkten anhand von Datenbank-Entities
    • Besonderheiten bei REST bei Spring und Java

Microservices mit Spring Boot und Spring Cloud

In diesem Abschnitt wird beleuchtet wie man Spring Boot-Anwendungen als Microservices in Produktionsumgebungen integriert. Der Fokus liegt darauf die Implementierung so zu gestalten, dass Services zuverlässig miteinander kommunizieren und Service-übergreifende Use Cases realisiert werden können. Der „Netflix-Stack“ bietet fast alle Features, die für eine erfolgreiche Integration von Microservices notwendig sind.

  • Spring Cloud Netflix
    • Service Discovery
    • Circuit Breaker-Pattern
    • Deklarative REST-Clients
    • Router und Filter
  • Weitere Leistungsmerkmale
    • Verteilte Konfiguration
    • Verteiltes Messaging
  • Diskussion
    • Dekomposition: Wie richtig geschnitten wird
    • API-Gateway als „Backend for frontend“
    • Probleme von Microservices und deren Lösungsmöglichkeiten
      • Verteiltes Datenmanagement
      • Performanceprobleme durch kaskadierende Service Calls
  • Deployment
    • Deployment in AWS
    • Deployment in Docker Container

Weitere Themen

  • Dokumentation
  • Monitoring

Unsere Veranstaltungsorte von dieser / diesem Schulung, Training, Seminar, Kurs (nach oben): Berlin, Dresden, Frankfurt am Main, Hamburg, Hannover, Karlsruhe, Köln, Leipzig, Magdeburg, München, Stuttgart und Inhouse.

Fortbildung oder Weiterbildung zu Spring Boot / Spring Cloud – wir setzen nur auf erfahrene Talente als Spring Boot / Spring Cloud Trainer. Das Credo von Mike Boddin lautet „Gute Software profitiert vom Blick über den Tellerrand“. Mehr zu ihm und den Beweggründen unserer anderen Trainer erfahren Sie bei seiner Biographie (direkt erreichbar per Bild).

Nach oben