Spring Boot Tutorial For Beginners
# SpringBootForBeginners
Spring Boot Tutorial For Beginners
* [Installing Eclipse, Maven and Java](#installing-tools)
* [Running Examples](#running-examples)
* [Course Overview](#course-overview)
  - [Course Steps](#step-list)
  - [Expectations](#expectations)
* [About in28Minutes](#about-in28minutes)
  - [Our Beliefs](#our-beliefs)
  - [Our Approach](#our-approach)
  - [Find Us](#useful-links)
  - [Other Courses](#other-courses)

## Installing Tools
- PDF : https://github.com/in28minutes/SpringIn28Minutes/blob/master/InstallationGuide-JavaEclipseAndMaven_v2.pdf
- Video : https://www.youtube.com/playlist?list=PLBBog2r6uMCSmMVTW_QmDLyASBvovyAO3
- GIT Repository : https://github.com/in28minutes/getting-started-in-5-steps

## Course Overview

### Introduction

Spring Boot has a lot of magic going for it. Developing Services with it is cool and fun.

Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can “just run”. Most Spring Boot applications need very little Spring configuration.

In this course, you will learn the cool things about Spring Boot and Spring Boot Starter Projects. We will develop a basic REST Service to manage questions of a survey.

You will learn about Spring Boot step by step - in more than 25 steps. This course would be a perfect first step as an introduction to Spring Boot.

You will be using Spring Boot and get introduced to REST Services, Spring Security (Authentication and Authorization), Maven (dependencies management), Eclipse (IDE) and Tomcat Embedded Web Server. We will help you set up each one of these.

You will learn about

- Basics of Spring Boot
- Basics of Auto Configuration and Spring Boot Magic
- Spring Boot Starter Projects
- Spring Initializr
- Basic REST Services using Spring Boot Starter Web
- REST Service Content Negotiation with JSON and XML
- Embedded servlet containers : Tomcat, Jetty and Undertow
- Writing Unit and Integration tests using Spring Boot Starter Test
- Profiles and Dynamic Configuration with Spring Boot
- Spring Boot Data JPA
- Spring Boot Actuator
- Spring Security
- Spring Boot Developer Tools and LiveReload

Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can “just run”. We take 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.

With Microservices, focus is shifting to getting started with developing web applications quickly. Spring Boot enables this.


### Goals
- Provide quick start for projects with Spring.
- Be opinionated but provide options.
- Provide a range of non-functional features that are common to large classes of projects (e.g. embedded servers, security, metrics, health checks, externalized configuration).
- Absolutely no code generation and no requirement for XML configuration.

### Step List
- Step 01: Setup and Launch Spring Boot Application with Maven and Eclipse
- Step 02: Creating your first RestController
- Step 03: Understanding Spring Boot Magic : Spring Boot Starter Web
- Step 04: Understanding Spring Boot Magic : Spring Boot Starter Parent
- Step 05: Spring Boot vs Spring
- Step 06: Create all Services for Survey and Questions
- Step 07: What is REST? Creating REST Service with @GetMapping and @PathVariable
- Step 08: Second REST Service to retrieve a specific question
- Step 09: Spring Boot Developer Tools and LiveReload : Develop faster!
- Step 10: Create a REST Service to add a new question to survey : @PostMapping, Postman 
- Step 11: Understand Content Negotiation. Deliver XML Responses from the REST Services
- Step 12: Spring Initializr : Create Spring Boot Projects on the fly!
- Step 13: Spring Boot Actuator : Monitor your Spring Boot applications!
- Step 14: Understanding Embedded servlet containers : Switch to Jetty or Undertow
- Step 15: Adding Dynamic Configuration to your application : YAML & More..
- Step 16: Basics of Profiles
- Step 17: Advanced Application Configuration with Type Safe Configuration Properties
- Step 18: Spring Boot Starter : Spring Data JPA with CommandLineRunner
- Step 19: In Memory Database H2 Console and add a new JPA Repository Method
- Step 20: Spring Boot Starter : Introduction to Spring Data Rest
- Step 21: Spring Boot Integration Test
- Step 22: Adding Integration Test for POST Request
- Step 23: Small Refactoring to organise ourselves
- Step 24: Writing Unit Tests with Spring Boot and Mockito
- Step 25: Writing Unit test for createTodo
- Step 26: Securing our services with Basic Authentication using Spring Security
- Step 27: Configure Spring Security user roles for survey and other services
- Step 28: A Deep Dive into Spring Boot Auto Configuration

### Expectations
- You should know Java. You should understand usage of Annotations.
- You should understand the basics of Spring framework.
- A basic understanding of JPA, Spring Security will be useful.
- You are NOT expected to have any experience with Eclipse or Maven.
- We will help you install Eclipse and get up and running with Maven.

## Let's have some fun
- What are we waiting for?
- Let's have some fun with Spring Boot in 25 Steps.
- I had fun creating this course and hope you would too.
- Thanks for your interest in Our Course 
  - I hope you’re as excited as I am!  
  - If you’re ready to learn more and sign up for the course, 
  - go ahead and hit that Enroll button, 
  - or take a test drive by using the Free Preview feature.  
- See you in the course!

## About in28Minutes

At in28Minutes, we ask ourselves one question everyday
> How do we create more amazing course experiences? 
> We use 80-20 Rule. We discuss 20% things used 80% of time in depth.

We are creating amazing learning experiences for learning Spring Boot with AWS, Azure, GCP, Docker, Kubernetes and Full Stack. 300,000 Learners rely on our expertise.  [Find out more.... ](https://github.com/in28minutes/learn#best-selling-courses)

![in28MinutesLearningRoadmap-July2019.png](https://github.com/in28minutes/in28Minutes-Course-Roadmap/raw/master/in28MinutesLearningRoadmap-July2019.png)
