Buying for a Team? Gift This Course
Wishlisted Wishlist

Please confirm that you want to add Learn Spring Boot - Rapid Spring Application Development to your Wishlist.

Add to Wishlist

Learn Spring Boot - Rapid Spring Application Development

Spring Boot gives you all the power of the Spring Framework without all of the complexity. Start writing apps today!
4.3 (1,047 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
4,946 students enrolled
Created by Dan Vega
Last updated 4/2016
English English
$10 $95 89% off
3 days left at this price!
30-Day Money-Back Guarantee
  • 11 hours on-demand video
  • 10 Articles
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Have a coupon?
What Will I Learn?
Create Spring MVC Applications
Connect to databases using Spring Data
Secure your applications using Spring Security
Create an executable JAR of your application
View Curriculum
  • Students should be familiar with the Java and or Groovy Programming Language
  • Web Development Experience (HTML / CSS / JavaScript)
  • A computer that can run Java + IntelliJ or Eclipse

Do you want to learn how to use Spring Boot to create engaging applications? Do you want to learn it in mere minutes instead of suffering for days trying to learn various programming languages? Are you a Spring Developer looking to hone your skills or just someone who is looking to expand their programming skill set?

Then this course, offered by Udemy and created by a Cleveland based Software Engineer, Dan Vega is the right choice for you. This particular course offered, called “Learn Spring Boot” is designed to introduce you to Spring Boot through showing you an opinionated view of the building of Spring applications through both the Java and Groovy programming languages. It is a crash course, one where very little knowledge of both of these programming languages is recommended and where any prior knowledge of the Spring Framework is not at all necessary in order to learn.

So what is Spring Boot and why is it necessary to learn? Spring Boot and the Spring Framework makes it easy to create both powered and production grade applications and services that run on their own and can be maintained with a minimum fuss. It also provides production ready features such as metrics, health checks and even externalized configuration. It is software designed to run anywhere, meaning you can create executable JARs, which is one of the most favorable features of this type of program.

While learning this type of application might seem like a daunting task, this course structures Spring Boot and Spring Framework learning in an easy to comprehend fashion. Featuring topics like an Introduction into the Framework as well as step by step guidelines into creating your first application, this course is perfect for almost any user. The only requirements in order to excel at this courses’ teaching of Spring Boot is some familiarity with Java and Groovy programming languages, some web development experiences as well as a computer that is capable of running both Java + Intellij or Eclipse.

Besides this course offering lifetime access to all eighty featured lectures and over ten hours of teaching content, it also offers you the opportunity to create Spring MVC applications and also tutorials on how to connect to various databases using Spring Data. This course will be extremely beneficial to students who are new to Spring Boot, students who are unfamiliar with Spring Framework or those who are looking into writing their own apps. This course applies to all of these cases.

Coming with nearly all five star ratings, this course from Dan Vega and Udemy comes highly reviewed and rated. Dan’s teaching style is described as “detailed” and “responsive” and his “obvious love and enthusiasm for the framework is infectious”. And since it is a course open to all skill levels and understandings, it is one of the best choices on the Udemy market for those looking to learn the ins and outs of the Spring Boot Framework as well as those looking to hone their skills in Java web development.

Who is the target audience?
  • Students new to Spring Boot
  • Students new & existing to the Spring Framework
  • You should NOT take this course if you have never used Java before.
Students Who Viewed This Course Also Viewed
Curriculum For This Course
Expand All 88 Lectures Collapse All 88 Lectures 11:08:33
5 Lectures 19:08

About Me

Hello there. My name is Dan Vega and I will be your instructor for this Introduction to Spring Boot. I want take this opportunity to say thank you for signing up for this course. I have a real passion for teaching and I am so excited to lead you on this adventure.

About This Course

This course is designed to introduce you to the Spring Framework and Spring Boot. You DO NOT need any prior experience with the Spring Framework but you should be familiar with the Java and / or Groovy programming languages.

What you will learn

  • Development Environment
  • Hello, Spring Boot.
  • Building Blocks
  • Developing Web Applications
  • Data Access with Spring Boot
  • Security
  • Building REST Services
  • Guides

Teaching Style

Finally I just want to cover my teaching style. I like to teach the same way that I like to be taught which is by utilizing a mixture of presentation slides, code demos, exercises and quizzes. I have found that you are much more likely to retain knowledge by applying what you have learned. So don’t get comfortable. It might be the first day of school but we have a quiz coming up at the end of this section.

Preview 02:46

Spring Boot makes it easy to build Spring Framework applications. As I said in the introduction you don't need to know the Spring Framework to take this course. I am going to take this opportunity to give you a little background on what the Spring Framework is and why you should care about it.

Preview 07:57

Now that we know a little bit about what the Spring Framework is where does Spring Boot come into play. How is Spring Boot going to help me build Spring Framework Applications?

Preview 06:02

All of the code for this course is hosted on github. In this lecture I just want to show you how to get this source and the conventions I used for storing it.

Source Code for This Course

In this quiz we are just going to make sure we understand some of the basics that we covered in this section.

Introduction Quiz
5 questions

This is just a quick exercise to get you familiar with the Spring documentation.

[Exercise] - Spring Documentation
Development Environment
9 Lectures 56:54

An overview of what we are going to cover in this section

Development Environment Intro

In this tutorial you will learn how to install Java 8 on Windows.

Installing Java on Windows

In this tutorial you will learn how to install Java 8 on Mac OSX.

Install Java on Mac OSX

How to install Groovy on Windows using the Windows Installer

Install Groovy on Windows

How to install Gradle on Windows

Gradle on Windows

The Spring CLI (Command Line Interface) is a wonderful tool for interacting with Spring Boot projects. In this tutorial we will learn how to install it on Windows and how to use it.

Preview 07:33

In this tutorial we will learn how to install SDK Man and learn about what this tool is and how to use it. While we are here we should install Groovy/Gradle/Spring on Mac OSX


How to Install IntelliJ on Windows

Installing IntelliJ on Windows

How to install IntelliJ on Mac OSX

Installing IntelliJ on Mac OSX
Hello, Spring Boot!
11 Lectures 01:03:50

We have learned a little about what The Spring Framework is and why Spring Boot was created. We also had a chance to setup our local development environment. We are all ready to go and its time to start coding. In this section we are going to write our first application and build upon that. While we are it we are going to learn about build tools and more specifically how to use Maven and Gradle.

Preview 00:37

The Hello World Application is a typical start to learning any language. Here we are going to build a Spring Boot application from scratch. All you need for this is a text editor and you might want to take some notes because after this tutorial you will be writing your own application in your very first exercise.

Preview 05:54

In this exercise you will practice what you learned in the previous section

[Exercise] Create your first Spring Boot Application

The Spring Initializr is a great way to start a Spring Boot project. In this tutorial we will look at how to use it and the different ways you can use it.

Spring Initializer

An overview of what a Build Tool is and why we would want to use one.

Build Tools Overview

We installed Maven in the previous section so how can we use to build our Spring Boot applications. Actually we don't even need Maven because the project comes with a maven wrapper. What is Maven and how do we use it.

Maven Build

We installed Gradle in the previous section so how can we use to build our Spring Boot applications. Actually we don't even need Gradle because the project comes with a Gradle wrapper. What is Gradle and how do we use it.
Gradle Build

There are whole courses created to teach you what a build tool is and how to use it. We obviously can't do that here but lets make sure we understand what they are used for at a high level.

Build Tools
3 questions

In this lecture we will discuss Starter POMs. You may have heard me talk about them throughout this course and now we are going to learn a little about them. Their only purpose is to provide the necessary dependencies to work with the library; see it as an opinionated view of what is required to get started. We will also go through a short demo that will help you understand how they work and take away the magic behind them.

Starter POMs

How to create executable JARs and how to run them. We will also discuss the concept of Make JAR not WAR

Creating Executable JARs

In this lecture we will look at two tools that will help us speed up our development time on our project. We will look at how to bring them into our Spring Boot project and how to use them.

Spring DevTools & Live Reload

In the previous exercise you built your first Spring Boot application from scratch. In this exercise we are going to take some of the tools and concepts we learned in the section and build a more full featured web application.

[Exercise] Building Your First Real World Application
Spring Boot Fundamentals
8 Lectures 01:11:11

In the introduction we heard the idea of dependency injection and Spring beans. In this section we are going to start off by looking into those key concepts and how they work. Next we are going to jump into configuration in Spring Boot and at the center of Spring Boots magic is Auto Configuration. This is a very important concept so lets take some time to understand it.

Spring Boot Fundamentals Introduction

In this lecture we will cover the basics of what a spring bean and how to create / manage them. We will also discuss what Dependency Injection is and look at a few of the options for injecting our dependencies into our classes.

Spring Beans & Dependency Injection

This is a coding demo of what we learned in the last lecture. We will take our knowledge of Spring beans and Dependency Injection and put them to use.

Spring Beans & Dependency Injection Demo

Understanding both of these fundamental concepts in Spring is very important.

Spring Beans & Dependency Injection
3 questions

In this lecture we will talk about how to configure you application using properties files and YAML configuration. We will also take a look at the chain of command when it comes to loading configuration and property sources take precedence. Finally we will look at a demo that should tie all of this together for you.

Application Properties & YAML Configuration

In this lecture we will look at the @ConfigureProperties annotation. This allows us to easily map configuration to our POJOs.

Configuration Properties

In this section we will talk about Spring Profiles. Profiles are an easy way for you to load environment specific properties. We will take a look at how to activate a profile and the @Profile annotation works on Spring Beans.


In this lecture we are going to talk about Auto Configuration. This is an important concept to learn because a lot of Spring Boots simplicity exists because of this feature. There really is 2 parts to this auto configuration story. Understanding what it is and how it works and then writing your own auto configuration classes. This is more of introduction course so I am not going to cover creating your own but once you have a basic understanding of this concept you should be able to find some information out there and write your own.

Auto Configuration

We just talked a whole lot about configuration. Lets just make sure you were paying attention.

8 questions

We are going to create a simple project that covers some of the key concepts we learned in this section.

Spring Core Fundamentals Exercise
Developing Web Applications
12 Lectures 01:43:10
Developing Web Applications Intro

In this lecture we are going to get a basic introduction to what Spring MVC is. This framework allows us to easily build out web applications.

Spring MVC Intro

In this demo we are going to create a very basic web application using Spring Boot. I am going to talk about the demo application we are going to use in this section. We will create the application and then talk about what makes up a basic web application.

Web Application Demo

Spring MVC is one of the most popular web frameworks around. Time to make sure we understand some of the key concepts of the web.

Developing Web Applications
5 questions

In this lecture we are going to demo creating a web application and adding static content to it.

Static Content

In this demo we are going to look at Bower. Web sites are made of lots of things — frameworks, libraries, assets, utilities, and rainbows. Bower manages all these things for you.


A quick overview of what a Template engine is and what options are available to us.

Template Engines

In this lecture we will take a look at the Thymeleaf Template Engine. We will look at what it is and what it has to offer. We will also go into a demo where we show off the true power behind a natural template engine.

Thymeleaf Demo

In this lecture we will take a look at using Groovy Server Pages (GSP) for our template engine. We will talk briefly about what GSP is and what it offers us and then take a look at a quick demo to see how it works.

GSP Demo

We are going to recap some of the information we learned on static content and the view layer.

Static Content & The View Layer
5 questions

In this lecture we take a look at adding Internationalization (i18n) to your applications.

Internationalization (i18n)

In this lecture we are going to discuss error handling. We are going to walk through what happens when you hit an error by default and then learn about how we can customize that experience for your users.

Error Handling

In this lecture we will take a look at how to handle exceptions in your controllers.

Exception Handling

In this exercise we are going to use the information we learned in this section to create a web application.

[Exercise] Creating a web application
Data Access with Spring Boot
12 Lectures 01:59:03

A quick introduction to what we are going to cover in Data Access with Spring Boot.

Data Access Introduction

In this lecture we are going to create a new application that includes the H2 database dependency and take a look at how we can access the management console.

Creating an Application using H2's in-memory database

In this lecture we are going to learn how to create entities and repositories. Entities are the objects that map back to our database and repositories expose the methods needed to interact with that data. This really is just an intro to JPA and if Hibernate or JPA are new to you then please do some reading up on them.

Creating Entities & Repositories

In this quiz we are going to cover some of the data access features we looked at in the previous lectures.

H2 In-memory & JPA Quiz
9 questions

In this lecture we will look at some ways we can load data into our application. This isn't really a production feature but if we are just trying to stand up a quick application and need some data in there these 2 approaches will work just great.

Loading Data

In a previous lecture I told you that creating everything in the main application class wasn't a good practice. In this lecture we are going to refactor our application a little bit and move things to were they should be. We will also look at how to create a dynamic query for a specific use case that comes up in our refactor.


We are going to continue refactoring some code on our sample blog application. In this demo we will move some of our page design to a layout and see how that works in Thymeleaf. We will also create some routes for our post list and view templates and look at creating a couple more dynamic queries.

Refactor Blog Part 2

In this demo we are going to look at the scenario where we need our production database to be different than our development database. We are going to connect to a hosted SQL server running on Azure.

Production Database

In the past few lectures we have been talking to a relational database using JPA. In some scenarios JPA can be kind of heavy and we may just want a lightweight way to talk to our database. JDBC Template gives us that and in this lecture we will take a look at what it can do. We are going to refactor our blog application to use JDBC Template instead of JPA.

Spring Data JDBC

Throughout all of our demos we have been using an H2 in-memory database. When we are done with development and we are ready to move to a production ready database what do we do. In this lecture we will answer those questions and walk through a demo of connecting to a SQL Server database on Azure.

NoSQL - MongoDB

In this exercise you are going to create an application and use some of the lessons we learned in this section.

[Exercise] Data Access with JPA & h2 Exercise

We are using Spring Data JPA in this course and when you extend the CRUD Repository you get a few methods out of the box such as

  • save
  • findOne
  • findAll
  • count
  • exists
  • delete
  • deleteAll

What happens when you want to start creating custom queries though? In this lecture we will look at that exact scenario.

Spring Data JPA - Creating Queries Part 1

This builds on the 1st part of this lecture. We continue to build out custom methods and even look at the Query annotation in this tutorial.

Spring Data JPA - Creating Queries Part 2
7 Lectures 01:05:38

security is important

what are we going to cover in this section

Security Introduction

In this lecture we will start our adventure into Security. We will talk about what Spring Security gives us out of the box and then look at a basic demo. We can see that while this is really easy to get up and running and use basic auth right out of the box its not very practical. In future lectures we are going to look at customizing Spring Security.

Spring Security Intro

In the last lecture we look at what Spring Security gives us out of the box. While it was easy to get up and running it wasn't very practical. In this lesson we will start to look at how we can customize what Spring Security gives us out of the box. We will look at using form based logins as well as enabling method level based security.

Spring Security - Custom Configuration Part 1

In this lecture we continue down the road of customizing the out of the box security framework to fit our application needs. We are going to remove the single default user and learn how to setup some in memory users with different roles. We are also going to learn how to customize our security policy.

Spring Security - Custom Configuration Part 2

Some basic questions about Spring Security

Spring Security Basics
6 questions

In this lecture we will look at creating our own custom login form. We will look at what do we need to do on the configuration side to make this happen. We will also dig into the Thymeleaf Spring Security Dialect and look at how that can offer some view helpers for our templates and layouts.

Spring Security Custom Login Form

As we continue to customize our Spring Security settings we are going to use JPA and persist our users to a database.

Spring Security & JPA

We are going to build an application that uses Spring Security.

[Exercise] Securing you application
Building REST APIs
11 Lectures 01:15:28

In this lecture we are going to learn what HTTP verbs are and how they play a role in building web APIs

HTTP Request Methods (Verbs)

In this lecture we are going to learn about HTTP status codes. We will look at what they are and some of the more common status codes that we might get back from a request.

HTTP Status Codes

Content negotiation is a mechanism defined in the HTTP specification that makes it possible to serve different versions of a document (or more generally, a resource representation) at the same URI, so that user agents can specify which version fit their capabilities the best.
Content Negotiation

When building REST APIs we need a way to test them. In this lecture we are going to look at 2 different tools we can use to test our REST APIs

HTTP Clients

Now that we understand a few of the different parts that go into building a REST API its time to build our own. We are going to walk through building a Post Controller to handle CRUD (create/read/update/delete) and a list method. All of these methods will be REST endpoints and we walk through how to create and consume them.

Building A REST API

I agree that slides can be pretty boring but the information we just covered is pretty important for building REST APIs. I just have a couple of questions so that we can review what we just learned.
REST Components
5 questions

In the last lecture we built out our first REST API. This was a very basic CRUD API but it works. The problem with it was though that it only works when everything goes ok What happens when we send bad data and we want to let the calling client know more about what went wrong. In this lecture we will look at that exact scenario and how we can handle it.

Error Handling

In this lecture we going to cover the basics of Spring Data Rest and hypermedia. We are going to look at the problem with creating our REST resources by hand and how Spring Data Rest can help solve that issue. We will demo all of this in the next lecture but for now I just wanted to give you a quick background on what it is.


In this lecture we are going to work on a Spring Data Rest Demo. We will start with a basic application and build out our REST endpoints using Spring Data Rest. We will also look at some examples of paging and sorting, changing the resource path and finally projections. We will end this demo with a simple tutorial of what the HAL Browser gives us out of the box.

Hypermedia Demo

We have had a lot of discussions in this section about building APIs but very little about consuming them. In this lecture we will look at using the RestTemplate class to consume APIs and convert them to objects on our end.

REST Template

In this exercise we are going to build our own REST API

[Exercise] Building a REST API
7 Lectures 58:27

In this lecture we are going to walk through the starter code. We are going to use this as our base application for our CRUD application.

CRUD Starter

In this lecture we are going to take the first logical step in creating our CRUD application. Before we can do anything else we need to be able to list multiple records and view a single record.

Preview 15:29

Now that we have the ability to list our posts and show a single post we need to be able to create one. We will look at creating a new post, showing the entry form and then saving the post object.


In the last section we looked at creating a new post record. In the example we looked at we showed what happens when everything goes great. This isn't always the case as we know and we need to guard against users entering bad data. We will look at how we can validate our post entry form from the last example.


Now that we can create a record we need the ability to update one. This is pretty similar to creating and we will reuse the form we used in the create example.


To wrap things up we need the ability to delete posts. We will also look at what flash attributes are and how we can use them to notify the user that a post has been deleted.

Preview 05:22

In this exercise we are going to build on the CRUD application we used in this section. We walked through on how create / read / update / delete for the posts domain object. Take the knowledge and do the following for the Author domain object.


  • Create an Admin Author Controller
  • List Authors / Show Authors
  • Create Author
  • Add Validation
  • Update Author
  • Delete Author


  • How can we display the number of posts each author has created.
  • If we delete an author what happens to their posts?
[Exercise] Building a CRUD Application
4 Lectures 34:58

There is just so much information to cover that we couldn't get to in this course. I didn't want to leaving you hanging though when it comes to questions like "How do I do x?". So I thought I would lean on what the Spring Guides section already started. My plan is to add different guides to this section as needed. If you have a guide you would like to see added please let me know.

Spring Guides -

Whatever you're building, these guides are designed to get you productive as quickly as possible – using the latest Spring project releases and techniques as recommended by the Spring team.

Guides Intro

In this guide we are going to look at how to send email using Spring Boot. The Spring Framework provides an easy abstraction for sending email using the JavaMailSender interface and Spring Boot provides auto-configuration for it as well as a starter module. If and the relevant libraries (as defined by spring-boot-starter-mail) are available, a default JavaMailSender is created if none exists.

Sending Email

In this guide we will look at scheduling tasks. We are going to use one of the getting started guides from and walk through setting up a new project that uses scheduled tasks.

Scheduling Tasks

In this tutorial we are going to look at project lombok. Project Lombok is a Java library that is going to help us reduce a lot of the boilerplate code that we write when it comes to domain objects or data classes. 

Project Lombok
1 More Section
About the Instructor
4.3 Average rating
1,975 Reviews
15,890 Students
4 Courses
Software Engineer

My name is Dan Vega and I am a Software Engineer based in Cleveland OH. I have been creating software for over 15 years now and I absolutely love my job. I love to learn new technologies but I enjoy teaching them to others even more. I started a blog about 8 years ago for that reason alone. I write about my adventures in software development and I love interacting with other developers. I also created a YouTube channel where I create short tutorials on anything that interests me. I have spoken at many user group meetings in Cleveland as well as conferences across the country.

Report Abuse