Module 1: Introduction to Spring
- Java conï¬Âguration and the Spring application context @Conï¬Âguration and @Bean annotations
- @Import: working with multiple conï¬Âguration ï¬Âles
- Deï¬Âning bean scopes
- Launching a Spring Application and obtaining Beans
Module 2: Spring JAVA Conï¬Âguration: A Deeper Look
- External properties & Property sources Environment abstraction
- Using bean proï¬Âles
- Spring Expression Language (SpEL)
Module 3: Annotation-based Dependency Injection
- Component scanning
- Autowiring using @Autowired
- Java conï¬Âguration versus annotations, mixing
- Lifecycle annotations: @PostConstruct and @PreDestroy
- Stereotypes and meta-annotations
Module 4: Factory Pattern in Spring
- Using Spring FactoryBeans
Module 5: Advanced Spring: How Does Spring Work Internally?
- The Spring Bean Lifecycle
- The BeanFactoryPostProcessor interception point
- The BeanPostProcessor interception point
- Spring Bean Proxies
- @Bean method return types
Module 6: Aspect-oriented programming
- What problems does AOP solve?
- Deï¬Âning pointcut expressions
- Implementing various types of advice
Module 7: Testing a Spring-based Application
- Spring and Test-Driven Development
- Spring 5 integration testing with JUnit 5
- Application context caching and the @DirtiesContext annotation
- Proï¬Âle selection with @ActiveProï¬Âles
- Easy test data setup with @Sql
Module 8: Data Access and JDBC with Spring
- How Spring integrates with existing data access technologies
- DataAccessException hierarchy
- Spring‘s JdbcTemplate
Module 9: Database Transactions with Spring
- Transactions overview
- Transaction management with Spring
- Transaction propagation and rollback rules
- Transactions and integration testing
Module 10: Spring Boot Introduction
- Introduction to Spring Boot Features
- Value Proposition of Spring Boot
- Creating a simple Boot application using Spring Initializer website
Module 11: Spring Boot Dependencies, Auto-conï¬Âguration, and Runtime
- Dependency management using Spring Boot starters
- How auto-conï¬Âguration works
- Conï¬Âguration properties
- Overriding auto-conï¬Âguration
- Using CommandLineRunner
Module 12: JPA with Spring and Spring Data
- Quick introduction to ORM with JPA
- Beneï¬Âts of using Spring with JPA
- JPA conï¬Âguration in Spring
- Conï¬Âguring Spring JPA using Spring Boot
- Spring Data JPA dynamic repositories
Module 13: Spring MVC Architecture and Overview
- Introduction to Spring MVC and request processing
- Controller method signatures
- Using @Controller, @RestController and @GetMapping annotations
- Conï¬Âguring Spring MVC with Spring Boot
- Spring Boot packaging options, JAR or WAR
Module 14: Rest with Spring MVC
- An introduction to the REST architectural style
- Controlling HTTP response codes with @ResponseStatus
- Implementing REST with Spring MVC, @RequestMapping, @RequestBody and @ResponseBody
- Spring MVC’s HttpMessageConverters and automatic content negotiation
Module 15: Spring Security
- What problems does Spring Security solve?
- Conï¬Âguring authentication
- Implementing authorization by intercepting URLs
- Authorization at the Java method level Understanding the Spring Security ï¬Âlter chain
- Spring security testing
Module 16: Actuators, Metrics and Health Indicators
- Exposing Spring Boot Actuator endpoints
- Custom Metrics
- Health Indicators
- Creating custom Health Indicators
- External monitoring systems
Module 17: Spring Boot Testing Enhancements
- Spring Boot testing overview
- Integration testing using @SpringBootTest
- Web slice testing with MockMvc framework
- Slices to test different layers of the application
Module 18: Spring Security Oauth
- OAuth 2 Overview
- Implementing OAuth 2 using Spring Security OAuth
Module 19: Reactive Applications with Spring
- Overview of Reactive Programming concepts
- Reactive Programming support in Spring
- Using Spring’s reactive WebClient