1 Introduction to Spring
- • Java configuration and the Spring application context
- • @Configuration and @Bean annotations
- • @Import: working with multiple configuration files
- • Defining bean scopes
- • Launching a Spring Application and obtaining Beans
2 Spring JAVA Configuration: A Deeper Look
- • External properties & Property sources
- • Environment abstraction
- • Using bean profiles
- • Spring Expression Language (SpEL)
3 Annotation-based Dependency Injection
- • Component scanning
- • Autowiring using @Autowired
- • Java configuration versus annotations, mixing.
- • Lifecycle annotations: @PostConstruct and @PreDestroy
- • Stereotypes and meta-annotations
4 Factory Pattern in Spring
- • Using Spring FactoryBeans
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
6 Aspect-oriented programming
- • What problems does AOP solve?
- • Defining pointcut expressions
- • Implementing various types of advice
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
- • Profile selection with @ActiveProfiles
- • Easy test data setup with @Sql
8 Data Accss and JDBC with Spring
- • How Spring integrates with existing data access technologies
- • DataAccessException hierarchy
- • Spring‘s JdbcTemplate
9 Database Transactions with Spring
- • Transactions overview
- • Transaction management with Spring
- • Transaction propagation and rollback rules
- • Transactions and integration testing
10 Spring Boot Introduction
- • Introduction to Spring Boot Features
- • Value Proposition of Spring Boot
- • Creating a simple Boot application using Spring Initializer website
11 Spring Boot Dependencies, Auto-configuration, and Runtime
- • Dependency management using Spring Boot starters
- • How auto-configuration works
- • Configuration properties
- • Overriding auto-configuration
- • Using CommandLineRunner
12 JPA with Spring and Spring Data
- • Quick introduction to ORM with JPA
- • Benefits of using Spring with JPA
- • JPA configuration in Spring
- • Configuring Spring JPA using Spring Boot
- • Spring Data JPA dynamic repositories
13 Spring MVC Architecture and Overview
- • Introduction to Spring MVC and request processing
- • Controller method signatures
- • Using @Controller, @RestController and @GetMapping annotations
- • Configuring Spring MVC with Spring Boot
- • Spring Boot packaging options, JAR or WAR
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
15 Spring Security
- • What problems does Spring Security solve?
- • Configuring authentication
- • Implementing authorization by intercepting URLs
- • Authorization at the Java method level
- • Understanding the Spring Security filter chain
- • Spring security testing
16 Actuators, Metrics and Health Indicators
- • Exposing Spring Boot Actuator endpoints
- • Custom Metrics
- • Health Indicators
- • Creating custom Health Indicators
- • External monitoring systems
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
18 Spring Security Oauth (Optional Topic)
- • OAuth 2 Overview
- • Implementing OAuth 2 using Spring Security OAuth
19 Reactive Applications with Spring (Optional Topic)
- • Overview of Reactive Programming concepts
- • Reactive Programming support in Spring
- • Using Spring’s reactive WebClient