Spring Boot: Efficient Development, Configuration, and Deployment

This course will teach you how to write your own custom auto configurations, externalize your configuration, and deploy your app to the cloud.
Course info
Rating
(181)
Level
Intermediate
Updated
Jun 15, 2016
Duration
2h 24m
Table of contents
Course Overview
Leveraging Initializr and Devtools for Efficient Development
Reducing Code with Custom Auto Configurations
Making Use of Spring Boot's Improvements to Externalized Configuration
Deploying and Monitoring Your Spring Boot Apps in the Cloud
Description
Course info
Rating
(181)
Level
Intermediate
Updated
Jun 15, 2016
Duration
2h 24m
Description

You've built your first Spring Boot application. Now what? Itching to learn more? In this course, Spring Boot: Efficient Development, Configuration, and Deployment, you'll go beyond the basics and learn how you can do things faster, smarter, easier, and more cloud-enabled. First, you'll learn how to get developing faster using Spring Initializr and the IDE support in IntelliJ and Eclipse. Then, you'll learn the details behind @EnableAutoConfiguration by writing your own auto configurations. You'll also begin to understand the power of using @ConfigurationProperties to externalize your application configuration. Lastly, you'll learn how to take advantage of Docker as a cloud-agnostic way of deploying your application to the cloud using Amazon Web Services and the Amazon EC2 Container Service. When you're finished with this course, you'll have an excellent understanding of how to get started quickly with Spring Boot, how to easily write your own auto configurations, how to easily make use of externalized configuration, and how to deploy your Spring Boot application to the cloud.

About the author
About the author

Dustin Schultz is a Lead Software Engineer and a technology evangelist at heart. He holds a Bachelors and a Masters in Computer Science, and is a full stack developer with the majority of his experience in Java, Spring, Hibernate, Spring Boot, Maven, AngularJS, and "The Cloud".

More from the author
Spring: The Big Picture
Beginner
1h 15m
May 15, 2018
Spring Cloud Fundamentals
Intermediate
3h 35m
Jun 6, 2017
Section Introduction Transcripts
Section Introduction Transcripts

Course Overview
Hi, my name's Dustin Schultz, and welcome to my course, Spring Boot: Efficient Development, Configuration, and Deployment. I'm a huge fan of the Spring Framework, and I've been developing Spring applications for almost ten years. Spring Boot is a fresh, new approach that makes developing with the Spring Framework fun, easy, and productive. In this course, we're going to go beyond the basics of Spring Boot and learn how you can take full advantage of all of its features. Some of the major topics that we'll cover include: quickly getting started with Spring Initializer, and learning how to use the Spring Boot support within your IDE. We'll understand the details behind app enable auto configuration, and we'll even learn to write our own auto configurations. We'll utilize the power of app configuration properties to externalize our application configuration, and we'll also learn how to deploy our Spring Boot apps in a cloud agnostic manner using Docker. By the end of this course, you're going to be knowledgeable beyond the basics of Spring Boot, and you'll understand how you can make full utilization of it. Before beginning this course, you should have a good familiarity with the Spring Framework, with Maven, and have had at least an introduction to Spring Boot. I hope you'll join me in learning Spring Boot at Pluralsight, with the course, Spring Boot: Efficient Development, Configuration, and Deployment.

Leveraging Initializr and Devtools for Efficient Development
Hi, my name's Dustin Schultz, and welcome to the course, Spring Boot: Efficient Development, Configuration, and Deployment. Before we begin, let's run through a quick course overview, so at least you know what you're getting yourself into. In this course, I assume you have a basic understanding of Spring Boot, and that you've built at least one app using it. If you have, you already know how fun and easy it is to use Spring Boot. We'll focus on how you can do things faster, smarter, easier, and cloudier, or more cloud-enabled, with your Spring Boot apps. We're going to start things off with faster, and use Spring's Initializr tool to quickly create the scaffolding for our demo project. Then, as we're building our demo, I'll point out some of the useful Spring Boot support that's available in IntelliJ and Eclipse. Lastly, we'll learn how to use Spring Boot DevTools to automatically and intelligently restart and reload our app any time there's a code change. In our case, this will help reduce our restart time from 10 seconds to 2. Then, we're going to get smarter. We'll learn how @EnableAutoConfiguration works, and how we can tune existing auto configurations, or write our own custom ones. Next up, we'll talk about how Spring Boot makes things like configuring your application even easier. It's much more forgiving in how it reads your configuration, it introduces additional configuration formats, like YAML, it allows you to do typesafe configuration, and it even integrates with your IDE, making things like auto-completion possible for configuration properties. To finish, we'll talk about how you get your Spring Boot apps in the cloud, and how you can monitor them with existing Spring Boot features, and how you can write custom monitoring in the cloud.

Making Use of Spring Boot's Improvements to Externalized Configuration
Hi, my name's Dustin Schultz, and welcome to my course: Spring Boot: Efficient Development, Configuration, and Deployment. In this module, we'll focus on the improvements that Spring Boot makes to externalizing your application configuration. One of the goals of Spring Boot is that it tries to make configuring your application as easy and as safe as possible. If you've ever had to externalize the configuration of an application that you've wrote, you are probably familiar with a properties file where you store all of the configuration as key/value pairs. One of the enhancements that Spring Boot makes is adding support for other configuration formats, like YAML. YAML is a data serialization standard and it works really well for expressing application configuration. Next, we'll see how you can use typesafe configuration to automatically bind and validate your configuration values in your configuration files to objects that contain simple types, like a long or an integer, or complex types, like a file object. And what this does for you is it alleviates any sort of parsing or casting or dealing with errors when you're reading in configuration to use throughout your application. We'll finish the module with a look at how Spring Boot actually resolves your externalized configuration, and it does so in a sort of cascading-like manner where it has a number of property sources that it checks in order and falls through or cascades to the next property source if the current property source doesn't contain the property or the configuration that it's looking for.

Deploying and Monitoring Your Spring Boot Apps in the Cloud
Hi, my name's Dustin Schultz, and welcome to my course, Spring Boot: Efficient Development, Configuration, and Deployment. In this module, we'll talk about how we make your apps cloudier or more cloud-enabled. We'll start off by learning how Spring Boot helps us monitor our applications in the cloud by providing us with these production-ready endpoints straight out of the box. Then, we'll see how we can customize those endpoints, specifically the health check endpoint, to add monitoring that's specific for our application. We'll finish by deploying our app to the cloud, specifically to AWS or Amazon Web Services, but we'll do so in a sort of cloud-agnostic way by using a technology called Docker, which will make it so that we can deploy our application to other cloud providers if we need to.