- Was ist Spring Boot?
- Abgrenzung zu Spring
- Eigenschaften eine Spring Boot Anwendung
- Schnelleinstieg in Spring Boot
Eine lauffähige Anwendung generieren mit Spring InitializrImport des generierten ProjektsHello World mit Spring MVC- Erzeugen eines ausführbaren JARS
- Aufbau einer Spring Boot Anwendung
- Parent POM und Spring Boot Dependencies
- Reproduzierbare Builds mit dem Maven Wrapper
- Die .gitignore Datei
- DependencyManagement als Alternative zur Parent POM
- @SpringBootApplication, @ComponentScan, @SpringBootConfiguration
- Der AutoConfiguration Mechanismus im Details
- Konfiguration
application.properties und application.ymlProperties referenzieren über @Value- die Environment Abstraktion
Properties setzen über Umgebungsvariablen- externe Propertiesdatei über @PropertySource referenzieren
- Persistenz mit Spring Data und Hibernate
Erzeugen einer JPA EntitätDatenzugriff mit Spring Data Repositories- Eigene Abfragemethoden definieren
JQL und native Queries mittels @Query- das n + 1 Abfragen Problem
Testdaten erzeugen mit data.sql
Bootstrapping mit dem CommandlineRunner Interface- REST APIs mit Spring Web MVC
Einen RESTController implementierenFehlerbehandlung in Spring Web MVC- JSON Serialisierung steuern mit JsonSerializer
- Logging
Konfiguration über application.properties- Konfiguration über logback.xml
File Logging
- Repositories als REST-Ressourcen exportieren mit Spring Data REST
Hot Swapping mit DevTools- Boilerplate reduzieren mit Lombok
Kompaktere JPA Entitäten mit @Getter, @Setter und @NoArgsConstructor- DTOs mit @Data
Logger generieren mit @Slf4j
- Monitoring und Betrieb mit Spring Boot Actuator
- REST APIs dokumentieren mit Swagger
- Spring Anwendungen testen
Unit Tests mit Mockito- Testbaren Code schreiben
- Integrationstests mit spring-test
- Ausblick auf JUnit5
- Service Discovery mit Eureka
- Eureka Server
- Eureka Client
- Eureka im Clusterbetrieb
- Clientseitiges Loadbalancing mit Ribbon
- Clientseitiges vs. serverseitiges LoadBalancing
- Kaskadierende Ausfälle vermeiden mit Hystrix
- Das Circuit Breaker Pattern
- Circuit Breaker vs. Retries
- Das Bulkhead Pattern
- Metriken mit dem Hystrix Dashboard
- Deklarative REST Clients mit Feign
- Routing mit Zuul
- Das API Gateway Pattern
- Das Strangulation Pattern
- Integration mit Eureka
- Physische Adressen ansprechen
- Zentralisierte Konfiguration mit Cloud Config
- Umgebungsvariablen vs. zentralisierte Konfiguration
- Nicht-JVM Sprachen integrieren mit SideCar
- Cloud-Dienste von der Kommandozeile starten mit Spring Cloud CLI