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.4 (894 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,448 students enrolled Bestselling in Spring Boot
84% off
Take This Course
  • Lectures 88
  • Length 11 hours
  • Skill Level All Levels
  • Languages English, captions
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 11/2015 English Closed captions available

Course Description

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.

What are the requirements?

  • 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

What am I going to get from this course?

  • Create Spring MVC Applications
  • Connect to databases using Spring Data
  • Secure your applications using Spring Security
  • Create an executable JAR of your application

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.

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: Introduction

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.


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.


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?


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.

5 questions

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


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

Section 2: Development Environment

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


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


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


How to install Groovy on Windows using the Windows Installer


How to install 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.


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


How to install IntelliJ on Mac OSX

Section 3: Hello, Spring Boot!

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.


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.


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


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.


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


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.

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.
3 questions

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.


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.


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



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.


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.

Section 4: Spring Boot Fundamentals

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.


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.


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.

3 questions

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


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.


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


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.

8 questions

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


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

Section 5: Developing Web Applications
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.


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.

5 questions

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.


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


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.


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.


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.

5 questions

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


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


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.


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


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

Section 6: Data Access with Spring Boot

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


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.


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.

9 questions

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


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.


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.


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.


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.


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.


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


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.


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.

Section 7: Security

security is important

what are we going to cover in this section


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.


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.


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.

6 questions

Some basic questions about Spring Security


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.


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


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

Section 8: Building REST APIs

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


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.

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.

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


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.

5 questions
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.

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.


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.


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.


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

Section 9: CRUD

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.


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.


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.



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?

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Dan Vega, 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.

Ready to start learning?
Take This Course