Skip to content

Instantly share code, notes, and snippets.

@helpermethod
Last active June 5, 2017 10:08
Show Gist options
  • Save helpermethod/202b4692679b311241e1f8bbc4385408 to your computer and use it in GitHub Desktop.
Save helpermethod/202b4692679b311241e1f8bbc4385408 to your computer and use it in GitHub Desktop.
Spring Boot und Spring Cloud

Spring Boot und Spring Cloud

Spring Boot

  • Was ist Spring Boot?
    • Abgrenzung zu Spring
    • Eigenschaften eine Spring Boot Anwendung
  • Schnelleinstieg in Spring Boot
    • Eine lauffähige Anwendung generieren mit Spring Initializr
    • Import des generierten Projekts
    • Hello 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.yml
    • Properties 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ät
    • Datenzugriff 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 implementieren
    • Fehlerbehandlung 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

Spring Cloud

  • 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment