Spring Boot Introduction
m
You will learn how to …
www.luv2code.com
You will learn how to …
• Quickly develop Spring Boot applications
www.luv2code.com
You will learn how to …
• Quickly develop Spring Boot applications
• Develop a REST API using Spring Boot
www.luv2code.com
You will learn how to …
• Quickly develop Spring Boot applications
• Develop a REST API using Spring Boot
• Create a Spring MVC app with Spring Boot
www.luv2code.com
You will learn how to …
• Quickly develop Spring Boot applications
• Develop a REST API using Spring Boot
• Create a Spring MVC app with Spring Boot
• Connect Spring Boot apps to a Database for CRUD development
www.luv2code.com
You will learn how to …
• Quickly develop Spring Boot applications
• Develop a REST API using Spring Boot
• Create a Spring MVC app with Spring Boot
• Connect Spring Boot apps to a Database for CRUD development
• Leverage all Java configuration (no xml) and Maven
www.luv2code.com
Practical Results
www.luv2code.com
Practical Results
• Introduction to Spring Boot development
www.luv2code.com
Practical Results
• Introduction to Spring Boot development
• Not an A to Z reference
www.luv2code.com
Practical Results
• Introduction to Spring Boot development
• Not an A to Z reference
• For complete reference, see Spring Boot Reference Manual
www.luv2code.com
Practical Results
• Introduction to Spring Boot development
• Not an A to Z reference
• For complete reference, see Spring Boot Reference Manual
https://spring.io/projects/spring-boot
www.luv2code.com
The Problem
www.luv2code.com
The Problem
• Building a Spring application is really HARD!!!
www.luv2code.com
The Problem
• Building a Spring application is really HARD!!!
Q: What Maven archetype to use?
www.luv2code.com
The Problem
• Building a Spring application is really HARD!!!
Q: What Maven archetype to use?
Q: Which Maven dependencies do I need?
www.luv2code.com
The Problem
• Building a Spring application is really HARD!!!
Q: What Maven archetype to use?
Q: Which Maven dependencies do I need?
Q: How do I set up configuration (xml or Java)?
www.luv2code.com
The Problem
• Building a Spring application is really HARD!!!
Q: What Maven archetype to use?
Q: Which Maven dependencies do I need?
Q: How do I set up configuration (xml or Java)?
Q: How do I install the server? (Tomcat, JBoss etc…)
www.luv2code.com
The Problem
• Building a Spring application is really HARD!!! And that's
JUST the basics
Q: What Maven archetype to use? for getting started
Q: Which Maven dependencies do I need?
Q: How do I set up configuration (xml or Java)?
Q: How do I install the server? (Tomcat, JBoss etc…)
www.luv2code.com
The Problem
www.luv2code.com
The Problem
• Tons of configuration
www.luv2code.com
The Problem
• Tons of configuration
www.luv2code.com
The Problem
• Tons of configuration
www.luv2code.com
The Problem
• Tons of configuration
www.luv2code.com
The Problem Very error-prone
Easy to make
• Tons of configuration a simple mistake
www.luv2code.com
The Problem Very error-prone
Easy to make
• Tons of configuration a simple mistake
There should be
an easier solution
www.luv2code.com
Spring Boot Solution
www.luv2code.com
Spring Boot Solution
• Make it easier to get started with Spring development
www.luv2code.com
Spring Boot Solution
• Make it easier to get started with Spring development
• Minimize the amount of manual configuration
www.luv2code.com
Spring Boot Solution
• Make it easier to get started with Spring development
• Minimize the amount of manual configuration
• Perform auto-configuration based on props files and JAR classpath
www.luv2code.com
Spring Boot Solution
• Make it easier to get started with Spring development
• Minimize the amount of manual configuration
• Perform auto-configuration based on props files and JAR classpath
• Help to resolve dependency conflicts (Maven or Gradle)
www.luv2code.com
Spring Boot Solution
• Make it easier to get started with Spring development
• Minimize the amount of manual configuration
• Perform auto-configuration based on props files and JAR classpath
• Help to resolve dependency conflicts (Maven or Gradle)
• Provide an embedded HTTP server so you can get started quickly
www.luv2code.com
Spring Boot Solution
• Make it easier to get started with Spring development
• Minimize the amount of manual configuration
• Perform auto-configuration based on props files and JAR classpath
• Help to resolve dependency conflicts (Maven or Gradle)
• Provide an embedded HTTP server so you can get started quickly
• Tomcat, Jetty, Undertow, …
www.luv2code.com
Spring Initializr
www.luv2code.com
Spring Initializr
http://start.spring.io
www.luv2code.com
Spring Initializr
• Quickly create a starter Spring project http://start.spring.io
www.luv2code.com
Spring Initializr
• Quickly create a starter Spring project http://start.spring.io
• Select your dependencies
www.luv2code.com
Spring Initializr
• Quickly create a starter Spring project http://start.spring.io
• Select your dependencies
• Creates a Maven/Gradle project
www.luv2code.com
Spring Initializr
• Quickly create a starter Spring project http://start.spring.io
• Select your dependencies
• Creates a Maven/Gradle project
• Import the project into your IDE
www.luv2code.com
Spring Initializr
• Quickly create a starter Spring project http://start.spring.io
• Select your dependencies
• Creates a Maven/Gradle project
• Import the project into your IDE
• Eclipse, IntelliJ, NetBeans etc …
www.luv2code.com
Spring Boot Embedded Server
www.luv2code.com
Spring Boot Embedded Server
• Provide an embedded HTTP server so you can get started quickly
www.luv2code.com
Spring Boot Embedded Server
• Provide an embedded HTTP server so you can get started quickly
• Tomcat, Jetty, Undertow, …
www.luv2code.com
Spring Boot Embedded Server
• Provide an embedded HTTP server so you can get started quickly
• Tomcat, Jetty, Undertow, …
• No need to install a server separately
www.luv2code.com
Spring Boot Embedded Server
• Provide an embedded HTTP server so you can get started quickly
• Tomcat, Jetty, Undertow, …
• No need to install a server separately
mycoolapp.jar
mycode
Tomcat
www.luv2code.com
Spring Boot Embedded Server
• Provide an embedded HTTP server so you can get started quickly
• Tomcat, Jetty, Undertow, …
• No need to install a server separately
mycoolapp.jar
mycode JAR file
includes your application code
AND
Tomcat includes the server
www.luv2code.com
Spring Boot Embedded Server
• Provide an embedded HTTP server so you can get started quickly
• Tomcat, Jetty, Undertow, …
• No need to install a server separately
Self-contained unit
mycoolapp.jar Nothing else to install
mycode JAR file
includes your application code
AND
Tomcat includes the server
www.luv2code.com
Running Spring Boot Apps
www.luv2code.com
Running Spring Boot Apps
• Spring Boot apps can be run standalone (includes embedded server)
www.luv2code.com
Running Spring Boot Apps
• Spring Boot apps can be run standalone (includes embedded server)
• Run the Spring Boot app from the IDE or command-line
www.luv2code.com
Running Spring Boot Apps
• Spring Boot apps can be run standalone (includes embedded server)
• Run the Spring Boot app from the IDE or command-line
mycoolapp.jar
mycode
Tomcat
www.luv2code.com
Running Spring Boot Apps
• Spring Boot apps can be run standalone (includes embedded server)
• Run the Spring Boot app from the IDE or command-line
mycoolapp.jar
mycode > java -jar mycoolapp.jar
Tomcat
Name of our JAR file
www.luv2code.com
Deploying Spring Boot Apps
www.luv2code.com
Deploying Spring Boot Apps
• Spring Boot apps can also be deployed in the traditional way
www.luv2code.com
Deploying Spring Boot Apps
• Spring Boot apps can also be deployed in the traditional way
• Deploy WAR file to an external server: Tomcat, JBoss, WebSphere etc …
www.luv2code.com
Deploying Spring Boot Apps
• Spring Boot apps can also be deployed in the traditional way
• Deploy WAR file to an external server: Tomcat, JBoss, WebSphere etc …
Tomcat
www.luv2code.com
Deploying Spring Boot Apps
• Spring Boot apps can also be deployed in the traditional way
• Deploy WAR file to an external server: Tomcat, JBoss, WebSphere etc …
Tomcat
mycoolapp.war
mycode
www.luv2code.com
Deploying Spring Boot Apps
• Spring Boot apps can also be deployed in the traditional way
• Deploy WAR file to an external server: Tomcat, JBoss, WebSphere etc …
Tomcat
mycoolapp.war travel.war
mycode
www.luv2code.com
Deploying Spring Boot Apps
• Spring Boot apps can also be deployed in the traditional way
• Deploy WAR file to an external server: Tomcat, JBoss, WebSphere etc …
Tomcat
mycoolapp.war travel.war shopping.war
mycode
www.luv2code.com
Spring Boot FAQ #1
www.luv2code.com
Spring Boot FAQ #1
Q: Does Spring Boot replace Spring MVC, Spring REST etc …?
www.luv2code.com
Spring Boot FAQ #1
Q: Does Spring Boot replace Spring MVC, Spring REST etc …?
• No. Instead, Spring Boot actually uses those technologies
www.luv2code.com
Spring Boot FAQ #1
Q: Does Spring Boot replace Spring MVC, Spring REST etc …?
• No. Instead, Spring Boot actually uses those technologies
Spring Core Spring AOP Spring …
www.luv2code.com
Spring Boot FAQ #1
Q: Does Spring Boot replace Spring MVC, Spring REST etc …?
• No. Instead, Spring Boot actually uses those technologies
Spring MVC Spring REST Spring …
Spring Core Spring AOP Spring …
www.luv2code.com
Spring Boot FAQ #1
Q: Does Spring Boot replace Spring MVC, Spring REST etc …?
• No. Instead, Spring Boot actually uses those technologies
Spring Boot
Spring MVC Spring REST Spring …
Spring Core Spring AOP Spring …
www.luv2code.com
Spring Boot FAQ #1
Q: Does Spring Boot replace Spring MVC, Spring REST etc …?
• No. Instead, Spring Boot actually uses those technologies
Once you do Spring Boot configs
Spring Boot then you make use of
regular Spring coding
Spring MVC Spring REST Spring …
@Component
@Controller
Spring Core Spring AOP Spring … @Autowired
etc…
www.luv2code.com
Spring Boot FAQ #2
www.luv2code.com
Spring Boot FAQ #2
Q: Does Spring Boot run code faster than regular Spring code?
www.luv2code.com
Spring Boot FAQ #2
Q: Does Spring Boot run code faster than regular Spring code?
• No.
• Behind the scenes, Spring Boot uses same code of Spring Framework
www.luv2code.com
Spring Boot FAQ #2
Q: Does Spring Boot run code faster than regular Spring code?
• No.
• Behind the scenes, Spring Boot uses same code of Spring Framework
• Remember, Spring Boot is about making it easier to get started
www.luv2code.com
Spring Boot FAQ #2
Q: Does Spring Boot run code faster than regular Spring code?
• No.
• Behind the scenes, Spring Boot uses same code of Spring Framework
• Remember, Spring Boot is about making it easier to get started
• Minimizing configuration etc …
www.luv2code.com
Spring Boot FAQ #3
www.luv2code.com
Spring Boot FAQ #3
Q: Do I need a special IDE for Spring Boot?
www.luv2code.com
Spring Boot FAQ #3
Q: Do I need a special IDE for Spring Boot?
• No.
• You can use any IDE for Spring Boot apps … even use plain text editor
www.luv2code.com
Spring Boot FAQ #3
Q: Do I need a special IDE for Spring Boot?
• No.
• You can use any IDE for Spring Boot apps … even use plain text editor
• The Spring team provides free Spring Tool Suite (STS) [IDE plugins]
www.luv2code.com
Spring Boot FAQ #3
Q: Do I need a special IDE for Spring Boot?
• No.
• You can use any IDE for Spring Boot apps … even use plain text editor
• The Spring team provides free Spring Tool Suite (STS) [IDE plugins]
• Some IDEs provide fancy Spring tooling support
www.luv2code.com
Spring Boot FAQ #3
Q: Do I need a special IDE for Spring Boot?
• No.
• You can use any IDE for Spring Boot apps … even use plain text editor
• The Spring team provides free Spring Tool Suite (STS) [IDE plugins]
• Some IDEs provide fancy Spring tooling support
• Not a requirement. Feel free to use the IDE that works best for you
www.luv2code.com