Spring Core Training Plus (SCTP) – Outline

Detailed Course Outline

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
Spring JAVA Configuration: A Deeper Look
  • External properties & Property sources
  • Environment abstraction
  • Using bean profiles
  • Spring Expression Language (SpEL)
Annotation-based Dependency Injection
  • Component scanning
  • Dependency Injection using @Autowired
  • Java configuration versus annotations, mixing, best practices
  • Lifecycle annotations: @PostConstruct and @PreDestroy
  • Stereotypes (@Service, @Repository, etc.) and meta-annotations
Factory Pattern in Spring
  • Using Spring FactoryBeans
Advanced Spring: How Does Spring Work Internally?
  • The Spring Bean Lifecycle
  • BeanFactoryPostProcessor and BeanPostProcessor
  • Spring Bean Proxies
  • Best Practice for bean types and bean names
Aspect-oriented programming
  • What problems does AOP solve?
  • Defining pointcut expressions
  • Implementing various types of advice
  • Application development with AOP
Testing a Spring-based Application
  • Spring 5 integration testing with JUnit 5
  • Application context caching and the @DirtiesContext annotation
  • Profile selection with @ActiveProfiles
  • Easy test data setup with @Sql
Data Access and JDBC with Spring
  • How Spring integrates with existing data access technologies
  • DataAccessException hierarchy and @Repository
  • Spring‘s JdbcTemplate and callback interfaces
Database Transactions with Spring
  • Transactions overview
  • Transaction management with Spring
  • Transaction propagation and rollback rules
  • Transactions and integration testing
Spring Boot Introduction
  • Introduction to Spring Boot Features
  • Value Proposition of Spring Boot
  • Creating a simple Boot application using Spring Initializer website
Spring Boot Dependencies, Auto-configuration, and Runtime
  • Dependency management using Spring Boot starters
  • How auto-configuration works
  • Configuration properties with Spring Boot
  • Overriding auto-configuration
  • Using CommandLineRunner and ApplicationRunner
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
Spring MVC Architecture and Overview
  • Introduction to Spring MVC and request processing
  • Controller method signatures
  • Using @Controller, @RestController, @RequestMapping, @GetMapping, etc, annotations
  • Configuring Spring MVC with Spring Boot
  • Spring Boot packaging options, JAR or WAR
Rest with Spring MVC
  • An introduction to the REST architectural style
  • Controlling HTTP response codes with @ResponseStatus
  • Implementing REST with Spring MVC, @RequestBody and @ResponseBody
  • Spring MVC’s HttpMessageConverters and automatic content negotiation
  • REST clients with RestTemplate, RestClient and WebClient: selection and implementation
Spring Boot Testing Enhancements and abstractions
  • Spring Boot testing overview
  • Integration testing using @SpringBootTest
  • Web slice testing with MockMvc framework
  • Slices to test different layers of the application
Spring Security
  • What problems does Spring Security solve?
  • Configuring authentication
  • Implementing authorization by URL Matching
  • Authorization at the Java method level
  • Understanding the Spring Security filter chain
  • Spring security testing
The Resource Server in OAuth 2.0
  • Configuring and implementing a secure web-application with JSON Web Token-based authorization
Actuators, Metrics and Health Indicators
  • Exposing and querying Spring Boot Actuator endpoints
  • Custom Metrics
  • Health Indicators
  • Creating custom Health Indicators