
This video provides an overview of the entire course.
Description of Spring Framework and the Spring Boot 2.0 subproject.
Description of Spring Framework
Description of Spring Boot 2.0
Differences between Spring Boot and Spring Boot 2.0
Description of the build tools Maven and Gradle.
Maven pom file explained
Gradle script explained
Show how to use the http://start.spring.io Spring Initializr website.
Usage of the website
Interact with Eclipse and the REST-Service of Spring Initializr
Description of the internal and external configuration of a Spring Boot project.
External configuration explained
Internal configuration explained
Automatic configuration as part of the internal configuration explained
Description of the Spring Boot project directory.
The Spring Boot project directory
Main Application class explained
Description of how a simple “Hello World” application is built and made runnable as a web application.
Create a Spring Initializr project
Implement a controller to handle HTTP requests
Create HTML template files for the Thymeleaf engine
Configuration of the Spring MVC application, regarding basics such as paths for resources or application settings for different profiles.
Create an application properties class to define an upload directory
Create an application config class to handle our properties class
Create a webconfig class to add further ressources
Creating the web application views and declaring the request controller to handle request calls.
Create views with HTML and Thymeleaf
Create controllers for handle requests
Creating a custom endpoint with a Spring actuator starter.
Add an actuator starter
Create a custom endpoint
Create a simple service for the endpoint
Presentation of the spring-boot-starter-test starter.
Explain the difference between unit and integration tests
Create a unit test
Show an integration test
The difference between REST service and SOAP web service explained.
Create a new controller to handle new REST endpoints
Add repositories to deal with the h2 in- memory database
Add the first GET request to the new controller
An overview of available HTTP verbs in Spring.
Add new request methods for post, put, and delete
Test the methods with Postman
Showing how to set the content type to XML or JSON for requests
On the server side, we introduce the produces clause
On client side we set the content type in the header
Showing how to validate objects with Hibernate and how to implement custom exceptions.
Annotate the book class with validations
Implement custom exception, Exception Handler, and error details
Show the result with Postman
How to integrate Swagger libraries with the project.
Add a SwaggerConfig class to the other configuration classes
Add Swagger annotations to the Controller
Show the documentation over the browser
Explaining the difference between webflux and web MVC.
Show the difference between synchronous, asynchronous, and reactive actions
Explain the reactor library
Show the difference in programs
Setting up a different project for reactive programming.
Annotate the classes for MongoDB with @Document
Define the repository for MongoDB
Add the first get request
Adding the missing methods for post, put, and delete requests.
Show the difference between usual and reactive programming
Test the methods with Postman
Securing the reactive app with Spring Security starter.
Implement the minimal security configuration for webflux
Show the result over the browser and Postman
Overview of Spring Data.
The features of Spring Data
Understand how to connect to the database
Steps to retrieve data
Show how to use the JdbcTemplate to create SQL statements.
Add a method to our interface class and implement it
Test it
How to use the JPARepository interface for our EBook Store.
Add a method to our Book repository
Test it
How to use the MongoDB as a non-SQL database.
An example of a Mongo template
An example of a Mongo Repository
How to add security to our EBook Store.
Add the implementations of user details and user details service
Implement the interface Web Security Configure Adapter for all the configure requests
Explain the steps to configure thymeleaf-extras
Show how to add the starter to the pom file.
Understand the property defaults
An overview of the possible settings
Show how automatic restart works.
Test the automatic restart property
Test the live reload property
Show how remote, debug and update works.
Test the remote update
Restart and debug
Show how to set global settings for all apps.
Show the usage of TestRestTemplate.
An example of TestRestTemplate for our EBook Store
Explain what @WebMvcTest can do.
Examples of @WebMvcTest in our EBook Store
Explain what @DataJpaTest can do.
Show an example of @DataJpaTest for our EBook Store
Explain what @MockBean can do.
Show an example of @MockBean for our store
This video will give you an overview about the course.
In this video, we will understand Spring Boot App entry point.
Look at the dependencies needed
Define App Runner
Understand @SpringBootApplication
In this video, we will look at REST services, microservices, and monoliths.
Start embedded microservices
Understanding how Spring use Jetty
Simple REST call to our running Service
In this video, we will create domain classes for a flight booking service.
Define the Travel entity
Understand @Entity annotation
Simple REST call to our running Service
In this video, we will look at Spring configuration and dependency injection.
Understand @Autowired annotation
Understand @Component annotation
Understand the Spring Bean lifecycle with @PostConstruct and @PreDestroy
In this video, we will create persistence for our domain object.
Creating a repository for our entity
Extending CrudRepository
Defining available SQL queries
In this video, we will build RESTful interfaces with Spring MVC HATEOS.
Creating a REST controller
Exposing GET operations
Defining available SQL queries
In this video, we will learn about WebFlux and WebClient.
Using Reactor API
Creating a reactive repository
Creating a reactive web controller
In this video, we will call services with RestTemplate and deal with outages.
Using RestTemplate
Starting Spring App context in integration tests
Leveraging RestTemplate to test REST Endpoints
In this video, we will look at DDD-oriented microservice.
Look at the bounded contexts in our application
Find three domains within our app
Create a notifications bounded context
In this video, we will learn to use bounded contexts to deal with large models.
Creating a booking bounded context
Distinguishing API and infrastructure bounded contexts
Creating a domain package
In this video, we will design an API with a bounded context.
Creating a destinations bounded context
Deciding what should be inside the API component
Splitting implementation into a separate component
In this video, we will learn about the communication between bounded contexts.
Solving the problem of communication between Bounded Contexts
Creating abstraction of Event Bus
Plugging Event Bus into separate contexts
In this video, we will learn about testing services with Spring MVC Tests.
Use mockMvc()
Test GET with mock
Test POST with mock
In this video, we will learn to mock out external services.
Learn about @Profile annotation
Start tests with integration profile
Mock beans using the proper profile
In this video, we will secure HTTP with UserDetailsService for authentication.
Configuration of WebSecurity
Using permitAll()
Creating a /secret controller
In this video, we will learn about CORS, CSRF attacks, and SSL.
Creating CSRF secured endpoints
Testing that the _csrf hidden token is included
MockMVC testing with security and without
In this video, we will get ready for production with Spring Boot Actuator.
Enabling Actuator
Actuator Configuration
Examining /application/health and implementing custom health-check
In this video, we will learn to cache responses.
Cache responses from an external service
Configure expiration policy of cache
Add an entry removal listener
In this video, we will see exception handling and logging.
Create a logging aspect interceptor
Create a fallback strategy for third-party service exceptions
Use Hystrix as a circuit breaker
In this video, we will discover the packaging of our application using Docker.
Adding Docker plugin to our project
Starting Docker on localhost
Building a Docker image with our app
In this video, we will learn about monitoring systems.
Examining application/metrics
Adding custom metrics
Monitoring the application while there is HTTP traffic
Spring is one of the best frameworks in the market for developing web, enterprise, and cloud-ready applications and services. Spring Boot simplifies the building of complex apps dramatically by reducing the amount of boilerplate code, and by providing production-ready features and a simple deployment model. It is the fastest way to get a Spring application up-and-running with the fewest lines of code and the least configuration. If you're a Java developer who wants to build applications with Spring Boot 2.0 and run microservices based application for production in Spring Boot 2.0, then go for this course.
This comprehensive 2-in-1 course is a step-by-step guide to building, testing, deploying, and monitoring your robust and scalable web applications and web services using Spring MVC. You will learn to build microservices using Spring Boot 2.0 and see how microservices address common operational and infrastructural concerns. You will also explore a suite of tools that Spring Cloud offers for the discovery, routing, and deployment of microservices to the enterprise and the cloud. Next, you will learn how to build RESTful web services application using the Spring WebFlux framework. Spring WebFlux is a new framework that helps in creating a reactive application in a functional way. Finally, you will leverage the additional features offered by Spring Boot Actuator to help you monitor and manage your applications and services when it's pushed to production.
Contents and Overview
This training program includes 2 complete courses, carefully chosen to give you the most comprehensive training possible.
The first course, Spring Boot 2.0 in 7 Days, is your perfect guide to rapidly developing enterprise-grade applications with Spring Boot. It will kick-start the task of achieving your business goals with Spring Boot. You will spend more time understanding your customers' needs and less time building applications to address them.
The second course, Hands-On Microservices with Spring Boot 2.0, takes a hands-on, practical approach to implementing microservices for your app development with the Spring ecosystem. You will delve into the two main components of the Spring ecosystem for microservice development—Spring Boot and Spring Cloud—in detail. You will see how to build microservices with Spring Boot 2.0. You will also explore a suite of tools that Spring Cloud offers for the discovery, routing, and deployment of microservices to the enterprise and the cloud.
By the end of this course, you will be able to develop, secure, deploy, and monitor your own applications, web services, and microservices from scratch with Spring Boot 2.0.
About the Authors :
We have the best work of the following esteemed author(s) to ensure that your learning journey is smooth:
Petra Simonis is a software developer with extended expertise in Java, Spring, Spring Boot, C++, and other programming and scripting languages. Over the past 15 years, she has gained experience in the fields of multimedia retrieval, telecommunications, GIS services, and healthcare.
Tomasz Lelek is a Software Engineer who programs mostly in Java and Scala. He is a fan of microservices architecture and functional programming. He has worked with more than 700 production microservices in the microservices ecosystem written in Spring Boot. He has 5+ years of experience in product development in Spring. He is also the co-founder of an e-learning platform that was built with the Java language.