Building Enterprise SpringBoot Applications
This course, written by Nick Todd, the author of JavaServer Pages 2.0 Developers Handbook from Sams Publishing, teaches you how to create enterprise applications using the latest versions of the very popular Spring framework with a focus on SpringBoot and the creation of microservices. The training course can be delivered using either Visual Studio Code, IntelliJ or Eclipse, and Maven or Gradle as the core development and build environments. In addition to teaching all the major aspects of Spring, the course also covers best practice integration between Spring and other technologies such as databases, Kafka, Cloud environments, and Docker. Various modules can be dropped / replaced, for example, NoSQL or SQL based back ends, and modules on SpringMVC for Thymeleaf and JMS can also be included if desired.
Prerequisites
- Java programming experience is required for this training course. If you do not have Java, then some scripting experience would be extremely advantageous.
Contents
Introduction to Spring and SpringBoot
- The need for Spring
- Implementing Dependency Injection with Spring
- The Spring Core
- Programming to Interfaces using Spring
- Introducing SpringBoot
Configuring Spring Beans
- Using Spring Annotations
- Using Java Configuration classes
- SpringBoot Opinionated Configuration
Spring and JDBC Database Connectivity
- The Spring JDBC Related Module
- The challenges of pure JDBC
- The Spring JDBC Template
- Writing an effective DAO using the Spring template class
- SpringBoot configuration for database access
Introduction to the Java Persistence API
- The need for Object Relational Mapping technology
- Mapping beans using JPA annotations
- Using the EntityManager to work with data
- Implementing relationships
- Configuration requirements using SpringBoot
Going Further with Spring and the JPA
- Integrating Spring with the JPA
- Injecting EntityManagers into DAOs
- Spring configuration for effective use of JPA with Spring
- Session management
- Working with Transactions
- Coordinating transactions with appropriate propagation
Spring and NoSQL with MongoDB or Cassandra
- Integrating Spring with MongoDB and Cassandra
- The MongoTemplate from Spring
- Inserting and Updating and Querying NoSQL Databases
- SpringBoot configuration for NoSQL
Spring Data
- Building CRUD APIs
- Working with finder methods
- The Repository pattern
- Using Spring Data with a NoSQL Database
Spring MVC for REST Services
- Overview of REST principles
- Creating REST controllers
- Using Paths and Query String Parameters
- Handling HTTP Codes
- Setting Custom Headers
- Handling Exceptions
Integration with Kafka
- What is Kafka
- The KafkaTemplate
- Sending messages to Kafka
- Processing messages from Kafka
- Configuring Kafka from SpringBoot
Spring Security
- Authentication and Authorization
- The Spring Security Servlet Filter
- AOP based security for components
- Configuring form based authentication
- Realm configuration using Spring
Aspect Oriented Programming with Spring
- The need for AOP
- Defining Aspects
- Defining Pointcuts
- Defining Advices
- Configuration options for AOP
- Weaving options when using AOP
Unit Testing Spring Applications
- Using the Spring Context in Unit Tests
- Autowiring beans into tests
- Testing Web application controllers using Spring
- Mocking when using Spring
JMS Messaging from Spring
- Introduction to Java Messaging Service
- The JMSTemplate
- The convertAndSend vs send methods
- Integrating messaging with Spring Boot
Deploying Spring Applications using Docker
- Introduction to Docker
- Containerize a Spring Boot application using Fabric8
- Using Docker Compose with Spring Boot


