Spring: Core Training

Course Overview

This 4-day course offers hands-on experience with the major features of Spring and Spring Boot, which includes configuration, data access, REST, AOP, auto-configuration, actuator, security, and Spring testing framework to build enterprise and microservices applications. On completion, participants will have a foundation for creating enterprise and cloud-ready applications. This course prepares students for the Spring Professional certification exam.  

Course Objectives

By the end of the course, you should be able to meet the following objectives:
• Spring configuration using Java Configuration and Annotations
• Aspect oriented programming with Spring
• Testing Spring applications using JUnit 5
• Spring Data Access - JDBC, JPA and Spring Data
• Spring Transaction Management
• Simplifying application development with Spring Boot
• Spring Boot auto-configuration, starters and properties
• Build a simple REST application using Spring Boot, embedded Web Server and fat JARs or classic WARs
• Implementing REST client applications using RestTemplate and WebClient
• Spring Security
• Enable and extend metrics and monitoring capabilities using Spring Boot actuator
• Utilize Spring Boot enhancements to testing

Pre-Requisite

Some developer experience using Java, an IDE (Eclipse, STS or IntelliJ) and build tools such as Maven or Gradle

Who Should Attend

• Application developers who want to increase their understanding of Spring and Spring Boot with hands-on experience and a focus on fundamentals

Related Certification Exam

Course Modules

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 en.points
• 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 

Course Schedule

Start: 04/20/2021 | End: 04/23/2021
Virtual

WE ARE THE COUNTRY'S LEADING ICT DISTRIBUTOR

Global brands. One single contact. Endless opportunities.

  • Pasig

    • MSI-ECS Complex M. Eusebio Avenue San Miguel Pasig City Metro Manila Philippines 1600
      Tel No: (+632) 8830 9999, (+632)8688 3333
  • Cebu

    • #17-19 Cebu WGA Compound, Rabaya St., Brgy. San Roque, Talisay City 6045 Cebu
      Tel No: (+032) 345-9441
  • Taguig

    • Shop 4 Ground Flr, Philplans Corporate Center, Kalayaan Ave. & Triangle Drive, Fort Bonifacio, Taguig City.
      Tel No: (+632) 8836-7954, 8828-2105
  • Davao

    • SRC Building, Arroyo corner R. Castillo St., Agdao, Davao City
      Tel No: (+6382) 282-8835 to 38