Course Outline - Spring Boot - 32 Hrs
Course Outline - Spring Boot - 32 Hrs
Prerequisites:
· Good hands-on knowledge of Java programming
· Web architecture basics
· SOLID principles in Java programming
· General understanding of design patterns
Lab setup:
1. JDK 21
2. Gradle 8.7
3. Artifactory/repository setup with Gradle
4. IntelliJ IDEA Community Edition 2023.3 or higher
5. Git 2.40 or higher
6. Access to GitHub and documentation sites
Day 1 , 2 & 3
· Spring Framework
o Historical perspectives
o Dependency injection approaches
o Basic Spring configuration for DI
o Beans and Components
o ApplicationContext
o Exercises
o Constructor and setter injection
o Autowiring and field injection
o Profiles
o Best practices for working with a DI container
· Spring Boot
o Introduction to RESTful Web Services
o Http fundamentals
o Essential annotations of Spring Boot
o Meta-annotations
o N-tier architecture
o Repository
o Service
Day 4 & 5
· Spring Boot Configuration
· JSON and XML
· Serialization and deserialization
· Essentials of JDBC programming
· JDBC template approach
· Spring Data JPA
o Introduction to JPA
o Hibernate
o JPA annotations
o Relations mapping
o JPA repositories
o Automatic query methods
o Introduction to JPQL queries
o Executing native queries
o Spring Data JPA configuration
o Antipatterns and best practices
Day 6 , 7 & 8
· Spring AOP
o Introduction to Aspect-oriented programming
o Use-case analysis for AOP
§ RestController
§ Mappings
§ Exception handling
o Hands-on Spring AOP
· Spring Boot Actuator
o Introduction to system observability
o Actuator endpoints
o Creating custom metrics using Micrometer
o Customizing the standard metrics
o Hands-on Spring Boot Actuator
· JUnit 5
o Introduction to software testing
o Standard unit-testing patterns
o Test lifecycle
o Parameterizing the tests
o Tags and test organization
o Mocking dependencies using Mockito
o Hands-on JUnit 5
o Introduction to integration testing
o Hands-on integration testing
Day 9 & 10
· API Documentation using OpenAPI/3 and Swagger UI
· CQRS pattern for application architecture
· Working with Scheduler
· Transactions in JPA
· Spring Security (demonstration)
o Introduction to web security
o Spring Security programming model
o Code review: implementation of JWT-based authentication and authorization for RESTful endpoints
· Gradle
· Deployment
o Deploying to the local Tomcat server
o Dockerizing the build (demo on local machine)
· Q&A