Spring Boot Advanced

Summary

In this 1-day course you’ll receive a deep-dive into Spring Boot features that go beyond the basics to boost your productivity. After this day you’ll understand how to tune the framework to your particular needs, rather than just using it as it comes out-of-the-box.

 Agenda

Custom autoconfiguration and type-safe configuration properties

  • Write your own Boot autoconfiguration modules for use within multi-module projects or even as company-wide shared libraries
  • Write your own type-safe configuration properties to provide IDE code assist to users when configuring your module, including validation support
  • Test your autoconfiguration modules, so that you can check that your configuration behaves as expected under various conditions

Configuring the embedded web server

  • Choose between the various supported web servers
  • Property-based server configuration for often-used features
  • Programmatic configuration for custom features: registering custom Tomcat valves, additional server connectors, etc.

Customizing the developer tools for optimal productivity

  • Configure the development tools to monitor additional resources for changes, like when you’re using a separate frontend project
  • Configure  the development tools to load certain classes in a different classloader, in case your library or framework doesn’t play nicely with the defaults thus preventing you from using the tools

Spring Boot Launchers

  • Learn how Spring Boot applications are actually bootstrapped
  • Use other launchers than the provided default one to support things like adding external classpath folders or downloading dependencies at first startup (‘thin jars’)

Integration Testing

  • Learn the ins and outs of how to configure your Spring Boot tests: how to tune the created ApplicationContext, overriding properties with test-specific values, etc.
  • Combine Spring Integration tests with Mockito mocks using @MockBean and @SpyBean
  • Use test slices to focus on specific aspects of your application in your tests, preventing the need to bootstrap a full application for tests that just need a small part of your configuration to be processed

Actuators

  • Write your own actuator endpoints and health checks
  • Expose custom application metrics
  • Options for securing your actuator endpoints
  • Using the Spring Boot Admin project to have a central UI for your Boot applications

Spring Cloud Introduction

  • How does Spring Cloud extend the Spring Boot application life cycle at startup
  • Set up shared configuration through the Spring Cloud Config server or Consul
  • Dynamically reload configuration changes without a full application restart
  • Integrate with a service discovery registry like Eureka or Consul

Prerequisites

We expect participants to have a basic working knowledge of the Spring Framework and Spring Boot. For a good overview of what we consider basic Boot knowledge, have a look at our 1-day Spring Boot 2.0 course.

When attending the course, please bring a laptop with a recent Java 8 SDK installed plus your IDE of choice.

 

About the trainer

Joris Kuipers

Joris is an absolute expert when it comes to Spring. He has been educating developers about the Spring Framework for over 10 years having started as a Senior Consultant at Interface21 (formerly SpringSource, now Pivotal), in April 2007. His role there was training Java developers in Spring and Java EE technologies, as well as providing technical consultancy.

His extensive experience with Spring means that he can provide a lot of tips, tricks and real-world examples.

In 2012 Joris joined Trifork Amsterdam, where he works as Manager Technology Delivery as well as a hands-on architect.

Courses: Core Spring, Enterprise Integration, Spring Web, Spring Boot

 

What our students say about Joris

  • "Great instructor with good presentation skills. Direct and to the point"
  • "Excellent! I have had some bad experiences with technical trainers, even from reputable companies. This trainer, however is not only very knowledgeable but also knows how to explain complicated concepts and has extensive experience in the field so he has a lot of real-world examples to use."
  • "Joris was very good and has a broad knowledge of the individual subjects and always adds some extra tips and tricks to the content."
  • "Really skilled profesional."
  • "He can make anyone understand anything :)"

Upcoming training dates