Ace Java Job Applications with Spring Boot in 12 Hours
Master Spring Boot essentials, build RESTful APIs, and secure your applications to land your dream Java job.
...
Share
Introduction to Spring Boot
Unit 1: Understanding Spring Boot Fundamentals
What is Spring Boot?
Auto-Configuration Magic
Starter Dependencies
Embedded Servers Explained
Spring Boot CLI
Unit 2: Setting Up Your Development Environment
Installing Java
Maven vs. Gradle
Installing Maven
Installing Gradle
Choosing an IDE
Unit 3: Creating Your First Spring Boot Application
Spring Initializr
Generating the Project
Importing into IDE
Hello, World!
Running the Application
Spring Boot Auto-Configuration
Unit 1: Understanding Auto-Configuration
Auto-Config: The Magic
How Auto-Config Works
Digging into spring.factories
Auto-Config Order
Conditional Config Intro
Unit 2: Customizing Auto-Configuration
Properties Override
Annotations Override
Excluding Auto-Config
Creating Custom Beans
Configuring with @Configuration
Unit 3: Conditional Configuration Deep Dive
@ConditionalOnClass
@ConditionalOnProperty
@ConditionalOnMissingBean
Creating Custom Conditions
Condition Evaluation Order
Spring Boot Starter Dependencies
Unit 1: Understanding Starter Dependencies
What are Starters?
Starters Under the Hood
Web Starter
Data JPA Starter
Security Starter
Unit 2: Working with Common Starters
Other Common Starters
Adding Starters (Maven)
Adding Starters (Gradle)
Managing Dependencies
Resolving Conflicts
Unit 3: Creating Custom Starters
Why Custom Starters?
Starter Project Setup
Auto-Configuration Class
Starter Metadata
Using the Custom Starter
Building RESTful APIs with Spring Boot
Unit 1: REST API Fundamentals
REST API Principles
HTTP Methods Overview
RESTful Resource Naming
HTTP Status Codes
API Versioning
Unit 2: Spring Boot REST Controllers
RestController Basics
RequestMapping Deep Dive
GET Requests
POST Requests
PUT and PATCH Requests
Unit 3: Advanced API Techniques
DELETE Requests
Response Entities
Content Negotiation
Asynchronous Requests
CORS Configuration
Request Handling and Data Binding
Unit 1: Request Parameter Extraction
Intro to Request Params
@RequestParam Basics
Handling Multiple Params
Optional Request Params
Unit 2: Path Variables and Headers
Intro to Path Variables
@PathVariable in Action
Intro to Request Headers
@RequestHeader Explained
Unit 3: Data Binding with Request Body
Intro to @RequestBody
@RequestBody Deep Dive
Intro to @ModelAttribute
@ModelAttribute In Depth
Unit 4: Validation and Exception Handling
JSR-303 Validation Intro
Validating Like a Pro
Exception Handling 101
Data Serialization with JSON
Unit 1: Jackson Configuration and Basics
JSON and Jackson
Jackson's ObjectMapper
Basic Serialization
Basic Deserialization
Handling JSON Arrays
Unit 2: Customizing JSON Output
Ignoring Fields
Renaming Fields
Property Order
Including Properties
Using Mix-in Annotations
Unit 3: Date and Time Serialization
Date Formats
JSR-310 Date/Time API
Timestamp Serialization
Unit 4: Custom Serializers and Deserializers
Custom Serializers
Custom Deserializers
When to Use Custom
Spring Data JPA: Data Persistence
Unit 1: Introduction to Spring Data JPA
JPA: The Basics
Spring Data JPA Intro
Setting Up Your Project
Configuring a Datasource
JPA Configuration
Unit 2: Defining Entities and Repositories
Defining JPA Entities
Entity Relationships
Creating Repositories
Custom Query Methods
Querying with @Query
Unit 3: CRUD Operations and Transactions
Creating Data
Reading Data
Updating Data
Deleting Data
Transactions
Advanced Spring Data JPA
Unit 1: Custom Queries with JPQL
JPQL Intro
Writing JPQL Queries
JPQL Functions
Joins in JPQL
JPQL Aggregation
Unit 2: Native SQL Queries
Native SQL Queries
Named Native Queries
SQL Result Set Mapping
Unit 3: Query Derivation and Pagination
Query Derivation Intro
Advanced Derivation
Paging Basics
Dynamic Sorting
Unit 4: Transaction Management
Transaction Basics
Transaction Attributes
Programmatic Tx
Introduction to Spring Security
Unit 1: Core Concepts of Spring Security
Security: The Big Picture
Spring Security's Role
Diving into Principals
Authentication Flow
Authorization Mechanisms
Unit 2: Integrating Spring Security
Adding the Dependency
Basic Configuration
Understanding Security Filters
Configuring Filter Chains
Stateless vs Stateful
Unit 3: User Details Service and Password Encoding
UserDetailsService Intro
Implementing UserDetailsService
Password Encoding
Encoding Passwords
Storing Users
Authentication and Authorization
Unit 1: Form-Based Authentication
Form Login Setup
Custom Login Page
UserDetailsService
Password Encoding
Logout Functionality
Unit 2: Authorization with Roles and Permissions
Role-Based Access
Permission-Based Access
Expression-Based Access
Protecting Methods
Custom Access Decision
Unit 3: Advanced Authentication Techniques
Custom Auth Provider
Remember-Me Feature
Concurrent Sessions
CSRF Protection
Security Best Practices
Securing REST APIs with JWT
Unit 1: JWT Fundamentals
Intro to JWT
JWT Header Explained
JWT Payload Deep Dive
JWT Signature Unveiled
JWT Use Cases
Unit 2: Generating and Validating JWTs
JWT Libraries
Generating JWTs
Validating JWTs
Handling Expired JWTs
Custom Claims
Unit 3: JWT Authentication for REST APIs
JWT Filter
Configuring Security
Securing Endpoints
Token Revocation
Best Practices
Unit Testing with JUnit and Mockito
Unit 1: JUnit Fundamentals
Intro to JUnit
Anatomy of a Test
JUnit Assertions
Test Fixtures
Test Suites
Unit 2: Mockito Basics
Intro to Mockito
Creating Mocks
Stubbing Methods
Verifying Interactions
Argument Matchers
Unit 3: Testing Spring Boot Components
Testing Services
Testing Controllers
Testing Repositories
TDD Intro
Mocking Best Practices
Integration Testing with Spring Test
Unit 1: Setting Up Integration Tests
Intro to Spring Test
Adding Spring Test
@SpringBootTest Basics
Test Configuration
Test Class Structure
Unit 2: Testing REST Endpoints with MockMvc
MockMvc Introduction
Setting up MockMvc
GET Requests with MockMvc
POST Requests with MockMvc
PUT/DELETE with MockMvc
Unit 3: Testing Component Interactions
Testing Services
Testing Repositories
Context Propagation
Testing Events
Advanced Testing
Testing Data Access Layers
Unit 1: Setting Up for Data Layer Testing
Data Layer Testing Intro
Choosing H2 Database
Configuring H2
Populating H2
@DataJpaTest Intro
Unit 2: Testing JPA Repositories
Testing CRUD Ops
Verifying Persistence
Testing Relationships
Testing Data Validations
Testing Auditing
Unit 3: Testing Custom Queries
Testing Custom Queries
Testing Native Queries
Testing Query Methods
Testing Pagination
Testing Transactions
Spring Boot Actuator
Unit 1: Introduction to Spring Boot Actuator
Actuator: The Overview
Adding Actuator
Base Path Configuration
Unit 2: Exploring Actuator Endpoints
Health Check Endpoint
Info Endpoint
Metrics Endpoint
Beans Endpoint
Environment Endpoint
Unit 3: Customizing and Securing Actuator
Endpoint Exposure
Custom Health Indicators
Custom Info Contributors
Securing Actuator
Unit 4: Advanced Actuator Usage
Auditing with Actuator
Tracing with Actuator
JMX with Actuator
Deployment Strategies
Unit 1: Packaging Spring Boot Applications
JAR vs. WAR: Overview
Building a JAR File
Building a WAR File
Executable JAR Deep Dive
Customizing JAR/WAR Build
Unit 2: Deployment Environments
Local Deployment
Cloud Deployment: Overview
Deploying to AWS
Deploying to Azure
Deploying to GCP
Unit 3: Configuration and Containerization
Externalized Configuration
Profiles: Env. Made Easy
Docker Intro
Dockerizing Spring Boot
Docker Compose