Advanced Java + Spring Framework enroll
Learn advanced Java and the Spring Framework to build highly scalable, robust, enterprise-grade Java applications. You'll learn modern development techniques and build dozens of complex applications such as RESTful APIs, dynamic web applications, fool-proof security systems and much more. When you finish this course, you'll be a legitimately capable software developer.
21 Sections · 362 Pages · By Ryan Desmond, Jared Larsen
-
Level
Intermediate to Professional
-
Duration
350 Hours. Or, ~5 months of dedicated learning @ 15-20 hours per week
-
What's included
202 lessons. 104 videos. 16 quizzes. 100+ challenges. Several portfolio projects.
-
Certificate
CodingNomads Certified Software Engineer
This course is part of the following career track:
-
2) Install Java + Spring Tools
-
Java Development Kit
-
Installing the JDK3 min
-
For Mac Users
-
How to Install Homebrew on Mac3 min
-
For Windows Users
-
Installing a Terminal Emulator
-
Apache Maven
-
How to Install Maven3 min
-
Video: Using Apache Maven22 min
-
Gradle Build Tool
-
How to Install Gradle3 min
-
Video: Using Gradle8 min
-
Project Lombok
-
Simplify Your Code with Lombok4 min
-
Video: Using Project Lombok12 min
-
Feedback
-
Feedback: Installing Java & Spring
-
-
3) Set Up Your Spring Workspace & Labs
-
File System & Project Source Files
-
Create Your Course File Structure4 min
-
Get Your Spring Course Labs3 min
-
Video: Download Labs Your Working Directory2 min
-
Working with your Labs
-
Pushing Labs to GitHub9 min
-
Video: Pushing Labs to GitHub5 min
-
How to Open Your Labs in IntelliJ3 min
-
Video: Open Your Labs in IntelliJ3 min
-
Assignments
-
Push Your Labs Project to GitHub
-
Feedback: Spring Workspace Set Up
-
-
4) Let's Build Something!
-
A web-based comedian to make things fun
-
Build a Spring Boot Comedy App13 min
-
Video: Spring Boot Comedy App14 min
-
Your Turn: Let's hear some quotes!
-
Labs: Inspirational Quotes14 min
-
Feedback
-
Feedback: Building Simple Spring Applications
-
-
5) The Spring Framework - What, Why & How?
-
Core Spring Knowledge
-
Understanding the Spring Framework in Java15 min
-
Java Spring Boot Overview7 min
-
Create a Spring Application using Initializr9 min
-
Video: Spring - What, Why, and How17 min
-
Assignments
-
Labs: Build a Basic Spring Boot Web App10 min
-
Quiz: The Spring Framework
-
Questions: Spring Framework
-
Feedback
-
Feedback: Spring Framework Overview
-
-
6) Inversion of Control (IoC)
-
Inversion of Control (IoC)
-
Introduction to Dependency Injection4 min
-
Video: Dependency Injection in Java18 min
-
Intro to Inversion of Control (IoC)5 min
-
Video: IoC With Spring5 min
-
Dependency Lookup9 min
-
How to Use Dependency Injection11 min
-
Assignments
-
Labs: Dependency Injection10 min
-
Quiz: IoC and Dependency Injection
-
Questions: IoC and Dependency Injection
-
Feedback
-
Feedback: Spring IoC
-
-
7) Spring Core
-
Spring Container
-
Spring ApplicationContext13 min
-
Spring ApplicationContext Event Handling6 min
-
Video: Spring ApplicationContext7 min
-
Spring Beans
-
Spring Beans10 min
-
Spring Bean Scopes11 min
-
Video: Spring Bean Scopes5 min
-
Spring Bean Life Cycle Stages8 min
-
Video: Bean Lifecycle5 min
-
Spring Core Annotations
-
Java Annotations14 min
-
@Configuration4 min
-
@Bean8 min
-
Video: @Configuration & @Bean8 min
-
@ComponentScan7 min
-
@Autowired10 min
-
Video: @Autowired6 min
-
@Lazy4 min
-
Video: @Lazy2 min
-
@Value9 min
-
Video: @Value4 min
-
@Primary5 min
-
Video: @Primary4 min
-
@Scope4 min
-
Advanced Annotations14 min
-
Assignments
-
Labs: Spring Core4 min
-
Quiz: Spring Core
-
Questions: Spring Beans & Annotations
-
Feedback
-
Feedback: Spring Core
-
-
8) Spring Data
-
Got Data? Spring Can Help
-
Simplifying Database Interactions with Spring Data10 min
-
Video: Spring Data8 min
-
Spring Data JDBC13 min
-
Video: Spring Data JDBC13 min
-
ORMs & JPAs
-
What is an ORM?8 min
-
Java Persistence API + Spring Data JPA7 min
-
Video: Spring Data JPA17 min
-
Using Spring to Create Your Database (DDL)
-
JPA Annotations10 min
-
Video: Creating Database Tables with Spring Data JPA7 min
-
Entity Relationships in Spring Data JPA7 min
-
One-to-One Relationships13 min
-
Video: @OneToOne Relationship8 min
-
One-to-Many + Many-to-One Relationships13 min
-
Video: @OneToMany + @ManyToOne9 min
-
Many-to-Many Relationships15 min
-
Video: @ManyToMany9 min
-
@JoinColumn Configurations9 min
-
Using Spring to Access Your Database (DML)
-
Spring Data JPA Repositories25 min
-
Video: JPA Repositories19 min
-
Derived Query Methods in Spring Data JPA22 min
-
Video: Derived Query Methods22 min
-
@Query Annotation21 min
-
Video: @Query4 min
-
Lifecycle Callback Annotations11 min
-
Video: Lifecycle Callback Annotations3 min
-
Under the Hood: Hibernate22 min
-
Spring Hibernate Integration13 min
-
@Transactional and ACID in Spring Data JPA21 min
-
@Transactional Properties: Timeout and Rollback11 min
-
Common Spring Data JPA Repository Issues26 min
-
MyBatis
-
MyBatis: A Flexible Java Data Mapping Framework5 min
-
MyBatis Mappers and CRUD Operations21 min
-
Video: MyBatis and Mappers13 min
-
Mapping POJOs with @Results + @Result16 min
-
Video: MyBatis @Results4 min
-
MyBatis Nested Relations with @One and @Many19 min
-
Video: MyBatis @One and @Many12 min
-
Integrating MyBatis Mappers with Spring7 min
-
Video: MyBatis Mappers & Spring3 min
-
Querydsl
-
Querydsl14 min
-
Querydsl Docs
-
Assignments
-
Labs: Spring Data JPA5 min
-
Quiz: Spring Data
-
Questions: Spring Data
-
Feedback
-
Feedback: Spring Data
-
-
9) HTTP & Web Services
-
Web Services
-
Introduction to Web Services14 min
-
JavaScript Object Notation (JSON)
-
JSON: The Preferred Data Format for Web Services13 min
-
Video: JSON Data Format10 min
-
Install a JSON Formatter Extension for Better Readability4 min
-
Hypertext Transfer Protocol (HTTP)
-
HTTP: The Protocol Powering the Web7 min
-
HTTP Requests: Methods, Headers, and Bodies9 min
-
URL Structure in Web Development10 min
-
Video: URL Structure4 min
-
HTTP Status Codes5 min
-
HTTPS: Securing Web Communication7 min
-
RESTful APIs
-
RESTful APIs & Endpoints7 min
-
Video: RESTful APIs13 min
-
Making a GET Request In Your Browser3 min
-
Video: GET Requests in the Browser6 min
-
Postman API Client4 min
-
Make a GET Request in Postman3 min
-
Video: GET Requests in Postman4 min
-
DELETE Requests with Postman3 min
-
Video: DELETE Requests Using Postman2 min
-
POST Requests with Postman6 min
-
Video: POST Requests with Postman8 min
-
PUT Requests with Postman4 min
-
Video: PUT Requests with Postman5 min
-
PATCH Requests with Postman4 min
-
Video: PATCH Requests with Postman3 min
-
HEAD and OPTIONS Requests with Postman3 min
-
Video: HEAD and OPTIONS Requests with Postman2 min
-
Useful Info
-
cURL for HTTP Requests from the CLI6 min
-
Assignments
-
Labs: HTTP Requests & APIs3 min
-
Quiz: HTTP & Web Services
-
Questions: HTTP Requests & Web Services
-
Feedback
-
Feedback: Spring HTTP & Web Services
-
-
10) Spring Web
-
Making HTTP Requests Using Spring
-
Prepare for API Interaction with Java and Spring11 min
-
Spring RestTemplate: GET Requests14 min
-
Spring RestTemplate: POST Requests13 min
-
Video: Spring RestTemplate POST Requests7 min
-
Spring RestTemplate: Advanced Requests15 min
-
Video: Spring RestTemplate Advanced Requests16 min
-
Understanding How Web Services Respond to Requests
-
Java Servlets Explained12 min
-
Java Servlet Types5 min
-
Spring Controllers4 min
-
Video: Simplify Java Servlets with Controllers4 min
-
Spring REST Controllers
-
Defining Spring Endpoints with @RestController15 min
-
Shortcut Annotations for Spring Endpoints12 min
-
Video: Spring @RestController Endpoints17 min
-
Returning Data to the Client
-
Using ResponseEntity for Spring HTTP Responses13 min
-
Video: ResponseEntity9 min
-
@ResponseBody in Spring7 min
-
Video: @ResponseBody5 min
-
JSON Serialization in Spring8 min
-
Getting Data from the Client
-
Spring Endpoints: Handling Client Data with Annotations3 min
-
Handling Query Parameters with @RequestParam11 min
-
Video: @RequestParam8 min
-
@PathVariable19 min
-
Video: @PathVariable7 min
-
@RequestBody7 min
-
Video: @RequestBody Annotation5 min
-
Handling Multipart Data with Spring Web18 min
-
Video: Handling Multipart Data6 min
-
Wrapping Up
-
Spring Project Structure Best Practices18 min
-
Building a Recipe API with Spring Boot25 min
-
Assignments
-
Labs: Spring Web Recipe API4 min
-
Quiz: Spring Web
-
Questions: Spring Web
-
Feedback
-
Feedback: Spring Web
-
-
11) Spring MVC
-
Serving Web Pages with Spring MVC
-
Spring MVC for Web Development7 min
-
Video: Intro to Spring MVC6 min
-
Model, ModelMap, and ModelAndView in Spring10 min
-
Video: Iterations of MVC3 min
-
Thymeleaf in Spring MVC8 min
-
Video: Thymeleaf Template Engine7 min
-
Thymeleaf Templates with JavaScript and CSS7 min
-
Video: JavaScript and CSS with Thymeleaf4 min
-
Building the Product Web Site
-
Part 1: Build a Customer Website with Spring MVC + Thymeleaf19 min
-
Video: Spring MVC + Thymeleaf Web Application Part 110 min
-
Part 2: Build a Customer Website with Spring MVC + Thymeleaf12 min
-
Video: Spring MVC + Thymeleaf Web Application Part 213 min
-
Video: Spring MVC + Thymeleaf Web Application Part 317 min
-
Assignments
-
Labs: Spring MVC7 min
-
Quiz: Spring MVC & Thymeleaf
-
Questions: Spring MVC & Thymeleaf
-
Feedback
-
Feedback: Spring MVC
-
-
12) Consuming APIs with Spring
-
Setting Up API Access
-
Part 1: New York Times API Access6 min
-
Project Structure
-
Part 2: New York Times API Integration9 min
-
Video: New York Times API Integration23 min
-
Part 3: Display API Data with Spring MVC and Thymeleaf7 min
-
Video: NYT News App with Spring MVC11 min
-
Assignments
-
Labs: Consuming APIs6 min
-
Quiz: Consuming APIs
-
Questions: Consuming APIs with Spring
-
Feedback
-
Feedback: Consuming APIs with Spring
-
-
13) Spring Test
-
Background (JUnit)
-
Video: Unit Testing with JUnit10 min
-
Setting Up
-
Spring Testing18 min
-
Spring Profiles and the @Profile Annotation8 min
-
Testing with Spring
-
Testing Controllers with MockMvc15 min
-
Video: Using MockMvc6 min
-
JSONPath for Testing JSON Responses7 min
-
API Testing with MockMvc and JSONPath18 min
-
Video: Testing APIs with MockMvc and JSONPath17 min
-
Testing JSON with ObjectMapper and ObjectReader15 min
-
Video: Testing JSON Responses without JSONPath6 min
-
Testing with TestRestTemplate8 min
-
Video: Testing with TestRestTemplate5 min
-
Mocking Spring Components for Unit Testing16 min
-
Video: Mocking with @MockBean11 min
-
Assignments
-
Labs: Spring Test4 min
-
Quiz: Testing with Spring
-
Questions: Testing with Spring
-
Feedback
-
Feedback: Spring Test
-
-
14) Spring Security
-
Core Concepts
-
Authentication vs. Authorization4 min
-
Introduction to Spring Security4 min
-
Spring Security Filters and the Filter Chain15 min
-
Authentication
-
Authentication Architecture15 min
-
Username & Password Authentication24 min
-
Video: Username & Password Authentication12 min
-
Spring Security OAuth2 Login15 min
-
Video: Spring Security OAuth2 Login14 min
-
Configuring More Spring Filters11 min
-
Video: Additional Filters6 min
-
Password Storage
-
Hashed Passwords with Spring Security10 min
-
Video: Password Hashing7 min
-
Authorization with Spring Security11 min
-
Authorization Practice Example18 min
-
Video: Spring Security Authorization9 min
-
Spring Method Security15 min
-
Custom PermissionEvaluator11 min
-
Video: Custom PermissionEvaluator18 min
-
Spring Security Project
-
Part 1: Securing the Recipe API22 min
-
Part 2: Securing the Recipe API8 min
-
Video: Securing the Recipe API14 min
-
Assignments
-
Labs: Spring Security9 min
-
Quiz: Spring Security
-
Questions: Spring Security
-
Feedback
-
Feedback: Spring Security
-
-
15) Spring AOP
-
Aspect Oriented Programming (AOP)
-
Aspect Oriented Programming in Spring17 min
-
Implementing Spring AOP9 min
-
Video: Aspect Oriented Programming10 min
-
AOP with Custom Annotations7 min
-
Video: AOP with Custom Annotations4 min
-
Video: Timing Methods with AOP4 min
-
Spring Proxies and AOP9 min
-
Assignments
-
Labs: Aspect Oriented Programming3 min
-
Quiz: Spring AOP
-
Questions: Spring AOP
-
Feedback
-
Feedback: Spring AOP
-
-
16) Spring Batch
-
Batch Processing with Spring
-
Batch Processing & Spring Batch15 min
-
Part 1: Spring Batch Demo Project21 min
-
Part 2: Managing Spring Batch Processes14 min
-
Video: Batch Processing with Spring34 min
-
Assignments
-
Labs: Spring Batch3 min
-
Quiz: Spring Batch Processing
-
Questions: Spring Batch Processing
-
Feedback
-
Feedback: Spring Batch
-
-
17) Caching with Spring
-
Optimizing Services with Caches
-
Caching & Spring Boot Cache11 min
-
Part 1: Caching in Spring Boot with Redis12 min
-
Part 2: Spring Boot Cache Annotations9 min
-
Video: Caching with Spring Boot24 min
-
Assignments
-
Labs: Spring Cache4 min
-
Quiz: Caching
-
Questions: Spring Cache
-
Feedback
-
Feedback: Spring Cache
-
-
18) Microservices & Monoliths
-
Microservices <> Monoliths
-
Microservices Architecture vs. Monolithic Architecture12 min
-
Microservices Example Project
-
Part 1: Spring Boot Microservices - Create the Server8 min
-
Part 2: Create the Client Microservices14 min
-
Part 3: Microservice Interaction9 min
-
Part 4: Build a Front-End Application9 min
-
Video: Spring Boot Microservices20 min
-
Assignments
-
Labs: Spring Microservices9 min
-
Quiz: Microservices & Monoliths
-
Questions: Microservices & Monoliths
-
Feedback
-
Feedback: Spring Microservices
-
-
19) Reactive Programming
-
Reactive Web Development
-
Reactive Programming11 min
-
Spring WebFlux for Reactive Programming6 min
-
Server Side
-
Part 1: Build a Reactive API11 min
-
Video: Reactive API Part 121 min
-
Part 2: Build Spring Reactive Functional Endpoints10 min
-
Video: Reactive API Part 216 min
-
Client Side
-
Part 1: Build a Reactive API Client with WebClient11 min
-
Part 2: Reactive Service Class with Spring WebClient7 min
-
Video: Reactive Photo Search Client24 min
-
Assignments
-
Labs: Reactive Programming5 min
-
Quiz: Reactive Programming
-
Questions: Reactive Programming
-
Feedback
-
Feedback: Spring Reactive Programming
-
-
20) Deployment with AWS
-
Deployment Basics
-
Software Deployment Basics9 min
-
Introduction to AWS3 min
-
Server Setup
-
Launching Your First Amazon EC2 Instance9 min
-
Video: Amazon EC211 min
-
SSH and Key Pairs10 min
-
Video: SSH (Secure Shell)6 min
-
Managing Ubuntu Software Packages6 min
-
Video: Package Management6 min
-
Install MySQL on Ubuntu15 min
-
Video: Installing MySQL on Ubuntu9 min
-
AWS Security Groups & Firewalls10 min
-
Video: AWS Security Groups7 min
-
Server Deployment (IaaS)
-
Part 1: Embedded Tomcat Deployment with Fat Jar6 min
-
Part 2: Embedded Tomcat Deployment - Jar File Transfer8 min
-
Part 3: Embedded Tomcat Deployment - Apps as a Service9 min
-
Video: Jar Deployment13 min
-
Server-Side Build Deployments with Maven & Gradle9 min
-
Video: Maven Deployment9 min
-
External Tomcat Server - War File Deployment14 min
-
Video: War File Deployment9 min
-
AWS Developer Tools
-
Continuous Delivery on AWS5 min
-
Amazon S3 Buckets for Storage4 min
-
AWS CodeBuild for Continuous Integration10 min
-
Video: Amazon S3 & AWS CodeBuild11 min
-
Part 1: AWS CodeDeploy11 min
-
Part 2: AWS CodeDeploy14 min
-
Video: AWS CodeDeploy13 min
-
AWS CodePipeline for Continuous Delivery7 min
-
AWS Parameter Store10 min
-
Video: CodePipeline & Parameter Store13 min
-
Managed Deployment (PaaS)
-
Part 1: Heroku with PostgreSQL11 min
-
Part 2: WAR File Deployment with Heroku CLI5 min
-
Part 3: JAR Heroku Deployment with Git10 min
-
Video: Deploying to Heroku12 min
-
AWS Elastic Beanstalk14 min
-
Video: Elastic Beanstalk10 min
-
Working with Amazon RDS11 min
-
Video: Amazon RDS9 min
-
Domains & Reverse Proxies
-
Amazon Route 53 for Custom Domains on EC212 min
-
Video: Elastic IPs + Route 538 min
-
Reverse Proxies in Web Deployments7 min
-
Setting Up a Reverse Proxy with Apache13 min
-
Video: Apache Reverse Proxy12 min
-
Nginx Reverse Proxy8 min
-
Video: Nginx Reverse Proxy10 min
-
Load Balancing & Auto Scaling
-
Load Balancing with AWS7 min
-
Part 1: Load Balancer Preparation7 min
-
Part 2: Setting Up an Elastic Load Balancer on AWS9 min
-
Video: AWS Elastic Load Balancing18 min
-
Amazon EC2 Auto Scaling8 min
-
Video: EC2 Auto Scaling7 min
-
Assignments
-
Labs: Deployment & AWS Cleanup4 min
-
Quiz: Deployment
-
Questions: Deployment
-
Feedback
-
Feedback: Spring Boot Deployment Section
-
-
21) Capstone Project
-
Tying It All Together
-
Capstone Project Overview & Ideas8 min
-
Your turn!
-
Plan, Document, Execute4 min
-
Capstone Checklist6 min
-
Share Your Project!
-
Share your project with the CodingNomads community!
-
Next Steps3 min
-
Certificate Request
-
Request Course Completion Certificate3 min
-
Feedback
-
Feedback: Advanced Java & Spring Framework Course
-