Joris Kuipers: Spring Boot & Spring Cloud
Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". It takes an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot applications need very little Spring configuration.
This course is fully updated to cover the latest Spring Boot 2.1 release. Significant differences to the 1.5 and 2.0 release are highlighted throughout the course so that users of older versions of the framework will both learn their version of the framework as well as what to expect when migrating to 2.1.
Spring Cloud is a set of frameworks built on top of Spring Boot that helps with building microservices and cloud-native applications. It covers areas like service discovery, centralized configuration and various patterns for robust synchronous and asynchronous communication between services, as well as integrating with various public cloud offerings.
Agenda - Day 1
Spring Boot overview
Provides a quick overview of what Spring Boot is and what it isn't, the features it provides, and some ways of quickly getting started with building a new Boot-based application.
Covers Spring Boot's auto-configuration: what is this important feature, what sort of auto-configuration is provided out-of-the-box, how does it work, and how to tune or override it.
Discusses configuration support in Spring Boot: what type of configuration files are supported, where does Boot look for configuration values and in what order, and support for type-safe configuration properties and relaxed binding
Fat JARs & Embedded Servlet Containers
Explains how Spring Boot can package applications as self-contained fat JARs with an embedded servlet container like Tomcat or Jetty. Also covers registration of servlet-related components and how to choose for a traditional WAR format if you don't want to use fat JARs.
Introduces the plugins that Spring Boot provides for building your applications with Maven or Gradle and the managed dependencies support it provides.
Provides an overview of what Boot support is there for building web applications, including serving static resources, using WebJars, and error handling.
Developing with Boot
Covers the Spring Boot Developer Tools and Boot's comprehensive testing support built on top of Spring's integration testing framework.
Agenda - Day 2
Production-ready features (actuator, health-checks, metrics, logging etc.)
Explains Spring Boot Actuator endpoints, how to enable and secure them (significantly different in Boot 1.5.x versus 2.x), its built-in support for exposing metrics and health checks, and configuring logging including special Logback support.
Spring Cloud introduction and configuration
Provides an overview of the various projects that make up the Spring Cloud ecosystem. Explains how Spring Cloud applications are bootstrapped and what additional things happen compared to plain Spring Boot applications. Covers the support for centralized configuration.
Spring Cloud service discovery and client-side load balancing
Goes over the support for registering services with a service registry like Eureka or Consul and acting as a discovery client. Proceeds to explain how discovery client support can be integrated through Netflix’s Ribbon library to automatically pick a service instance to connect to when using a Spring HTTP client (RestTemplate or WebClient).
Spring Cloud integration with Netflix’s Hystrix
Discusses support for integrating with Netflix’s Hystrix library to offer circuit breakers and bulk heading support.
* Next to these presentations, the masterclass contains several hands-on exercises and leaves enough room to cover additional questions and topics that come up.
- We're assuming basic Spring knowledge as a prerequisite.
- When attending the course, please bring a laptop with a recent Java 8 SDK installed plus your IDE of choice