How to Install Homebrew on Mac 
 
Installing a Terminal Emulator 
 
Video: Using Apache Maven 
 
Simplify Your Code with Lombok 
 
Video: Using Project Lombok 
 
Feedback: Installing Java & Spring 
 
Create Your Course File Structure 
 
Get Your Spring Course Labs 
 
Video: Download Labs Project 
 
Video: Pushing Labs to GitHub 
 
How to Open Your Labs in IntelliJ 
 
Video: Open Your Labs in IntelliJ 
 
Push Your Labs Project to GitHub 
 
Feedback: Spring Workspace Set Up 
 
Understanding the Spring Framework in Java 
 
Java Spring Boot Overview 
 
Create a Spring Application using Initializr 
 
Video: Spring - What Why and How 
 
Labs: Build a Basic Spring Boot Web App 
 
Quiz: The Spring Framework 
 
Questions: Spring Framework 
 
Feedback: Spring Framework Overview 
 
Introduction to Dependency Injection 
 
Video: Dependency Injection in Java 
 
Intro to Inversion of Control (IoC) 
 
How to Use Dependency Injection 
 
Labs: Dependency Injection 
 
Quiz: IoC and Dependency Injection 
 
Questions: IoC and Dependency Injection 
 
Spring ApplicationContext 
 
Spring ApplicationContext Event Handling 
 
Video: Spring ApplicationContext 
 
Video: Spring Bean Scopes 
 
Spring Bean Life Cycle Stages 
 
Video: @Configuration & @Bean 
 
Questions: Spring Beans & Annotations 
 
Simplifying Database Interactions with Spring Data 
 
Java Persistence API + Spring Data JPA 
 
Video: Creating Database Tables with Spring Data JPA 
 
Entity Relationships in Spring Data JPA 
 
Video: @OneToOne Relationship 
 
One-to-Many + Many-to-One Relationships 
 
Video: @OneToMany + @ManyToOne 
 
Many-to-Many Relationships 
 
@JoinColumn Configurations 
 
Spring Data JPA Repositories 
 
Derived Query Methods in Spring Data JPA 
 
Video: Derived Query Methods 
 
Lifecycle Callback Annotations 
 
Video: Lifecycle Callback Annotations 
 
Under the Hood: Hibernate 
 
Spring Hibernate Integration 
 
@Transactional and ACID in Spring Data JPA 
 
@Transactional Properties: Timeout and Rollback 
 
Common Spring Data JPA Repository Issues 
 
MyBatis: A Flexible Java Data Mapping Framework 
 
MyBatis Mappers and CRUD Operations 
 
Video: MyBatis and Mappers 
 
Mapping POJOs with @Results + @Result 
 
MyBatis Nested Relations with @One and @Many 
 
Video: MyBatis @One and @Many 
 
Integrating MyBatis Mappers with Spring 
 
Video: MyBatis Mappers & Spring 
 
Introduction to Web Services 
 
JSON: The Preferred Data Format for Web Services 
 
Install a JSON Formatter Extension for Better Readability 
 
HTTP: The Protocol Powering the Web 
 
HTTP Requests: Methods Headers and Bodies 
 
URL Structure in Web Development 
 
HTTPS: Securing Web Communication 
 
Making a GET Request In Your Browser 
 
Video: GET Requests in the Browser 
 
Make a GET Request in Postman 
 
Video: GET Requests in Postman 
 
DELETE Requests with Postman 
 
Video: DELETE Requests Using Postman 
 
POST Requests with Postman 
 
Video: POST Requests with Postman 
 
PUT Requests with Postman 
 
Video: PUT Requests with Postman 
 
PATCH Requests with Postman 
 
Video: PATCH Requests with Postman 
 
HEAD and OPTIONS Requests with Postman 
 
Video: HEAD and OPTIONS Requests with Postman 
 
cURL for HTTP Requests from the CLI 
 
Labs: HTTP Requests & APIs 
 
Quiz: HTTP & Web Services 
 
Questions: HTTP Requests & Web Services 
 
Feedback: Spring HTTP & Web Services 
 
Prepare for API Interaction with Java and Spring 
 
Spring RestTemplate: GET Requests 
 
Spring RestTemplate: POST Requests 
 
Video: Spring RestTemplate POST Requests 
 
Spring RestTemplate: Advanced Requests 
 
Video: Spring RestTemplate Advanced Requests 
 
Video: Simplify Java Servlets with Controllers 
 
Defining Spring Endpoints with @RestController 
 
Shortcut Annotations for Spring Endpoints 
 
Video: Spring @RestController Endpoints 
 
Using ResponseEntity for Spring HTTP Responses 
 
JSON Serialization in Spring 
 
Spring Endpoints: Handling Client Data with Annotations 
 
Handling Query Parameters with @RequestParam 
 
Video: @RequestBody Annotation 
 
Handling Multipart Data with Spring Web 
 
Video: Handling Multipart Data 
 
Spring Project Structure Best Practices 
 
Building a Recipe API with Spring Boot 
 
Labs: Spring Web Recipe API 
 
Spring MVC for Web Development 
 
Video: Intro to Spring MVC 
 
Model ModelMap and ModelAndView in Spring 
 
Video: Thymeleaf Template Engine 
 
Thymeleaf Templates with JavaScript and CSS 
 
Video: JavaScript and CSS with Thymeleaf 
 
Part 1: Build a Customer Website with Spring MVC + Thymeleaf 
 
Video: Spring MVC + Thymeleaf Web Application Part 1 
 
Part 2: Build a Customer Website with Spring MVC + Thymeleaf 
 
Video: Spring MVC + Thymeleaf Web Application Part 2 
 
Video: Spring MVC + Thymeleaf Web Application Part 3 
 
Quiz: Spring MVC & Thymeleaf 
 
Questions: Spring MVC & Thymeleaf 
 
Part 1: New York Times API Access 
 
Part 2: New York Times API Integration 
 
Video: New York Times API Integration 
 
Part 3: Display API Data with Spring MVC and Thymeleaf 
 
Video: NYT News App with Spring MVC 
 
Questions: Consuming APIs with Spring 
 
Feedback: Consuming APIs with Spring 
 
Video: Unit Testing with JUnit 
 
Spring Profiles and the @Profile Annotation 
 
Testing Controllers with MockMvc 
 
JSONPath for Testing JSON Responses 
 
API Testing with MockMvc and JSONPath 
 
Video: Testing APIs with MockMvc and JSONPath 
 
Testing JSON with ObjectMapper and ObjectReader 
 
Video: Testing JSON Responses without JSONPath 
 
Testing with TestRestTemplate 
 
Video: Testing with TestRestTemplate 
 
Mocking Spring Components for Unit Testing 
 
Video: Mocking with @MockBean 
 
Quiz: Testing with Spring 
 
Questions: Testing with Spring 
 
Authentication vs. Authorization 
 
Introduction to Spring Security 
 
Spring Security Filters and the Filter Chain 
 
Authentication Architecture 
 
Username & Password Authentication 
 
Video: Username & Password Authentication 
 
Spring Security OAuth2 Login 
 
Video: Spring Security OAuth2 Login 
 
Configuring More Spring Filters 
 
Video: Additional Filters 
 
Hashed Passwords with Spring Security 
 
Authorization with Spring Security 
 
Authorization Practice Example 
 
Video: Spring Security Authorization 
 
Custom PermissionEvaluator 
 
Video: Custom PermissionEvaluator 
 
Part 1: Securing the Recipe API 
 
Part 2: Securing the Recipe API 
 
Video: Securing the Recipe API 
 
Questions: Spring Security 
 
Feedback: Spring Security 
 
Aspect Oriented Programming in Spring 
 
Video: Aspect Oriented Programming 
 
AOP with Custom Annotations 
 
Video: AOP with Custom Annotations 
 
Video: Timing Methods with AOP 
 
Labs: Aspect Oriented Programming 
 
Batch Processing & Spring Batch 
 
Part 1: Spring Batch Demo Project 
 
Part 2: Managing Spring Batch Processes 
 
Video: Batch Processing with Spring 
 
Quiz: Spring Batch Processing 
 
Questions: Spring Batch Processing 
 
Microservices Architecture vs. Monolithic Architecture 
 
Part 1: Spring Boot Microservices - Create the Server 
 
Part 2: Create the Client Microservices 
 
Part 3: Microservice Interaction 
 
Part 4: Build a Front-End Application 
 
Video: Spring Boot Microservices 
 
Labs: Spring Microservices 
 
Quiz: Microservices & Monoliths 
 
Questions: Microservices & Monoliths 
 
Feedback: Spring Microservices 
 
Spring WebFlux for Reactive Programming 
 
Part 1: Build a Reactive API 
 
Video: Reactive API Part 1 
 
Part 2:  Build Spring Reactive Functional Endpoints 
 
Video: Reactive API Part 2 
 
Part 1: Build a Reactive API Client with WebClient 
 
Part 2: Reactive Service Class with Spring WebClient 
 
Video: Reactive Photo Search Client 
 
Labs: Reactive Programming 
 
Quiz: Reactive Programming 
 
Questions: Reactive Programming 
 
Feedback: Spring Reactive Programming 
 
Software Deployment Basics 
 
Launching Your First Amazon EC2 Instance 
 
Video: SSH (Secure Shell) 
 
Managing Ubuntu Software Packages 
 
Video: Package Management 
 
Video: Installing MySQL on Ubuntu 
 
AWS Security Groups & Firewalls 
 
Video: AWS Security Groups 
 
Part 1: Embedded Tomcat Deployment with Fat Jar 
 
Part 2: Embedded Tomcat Deployment - Jar File Transfer 
 
Part 3: Embedded Tomcat Deployment - Apps as a Service 
 
Server-Side Build Deployments with Maven & Gradle 
 
External Tomcat Server - War File Deployment 
 
Video: War File Deployment 
 
Continuous Delivery on AWS 
 
Amazon S3 Buckets for Storage 
 
AWS CodeBuild for Continuous Integration 
 
Video: Amazon S3 & AWS CodeBuild 
 
AWS CodePipeline for Continuous Delivery 
 
Video: CodePipeline & Parameter Store 
 
Part 1: Heroku with PostgreSQL 
 
Part 2: WAR File Deployment with Heroku CLI 
 
Part 3: JAR Heroku Deployment with Git 
 
Video: Deploying to Heroku 
 
Amazon Route 53 for Custom Domains on EC2 
 
Video: Elastic IPs + Route 53 
 
Reverse Proxies in Web Deployments 
 
Setting Up a Reverse Proxy with Apache 
 
Video: Apache Reverse Proxy 
 
Video: Nginx Reverse Proxy 
 
Part 1: Load Balancer Preparation 
 
Part 2: Setting Up an Elastic Load Balancer on AWS 
 
Video: AWS Elastic Load Balancing 
 
Labs: Deployment & AWS Cleanup 
 
Feedback: Spring Boot Deployment Section