Spring Core

Course Overview:

This 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.

Course Objectives:

Upon completion of this course, participants will understand how to implement the following:

  • 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 applications with Spring Boot
  • Spring Boot auto-configuration, starters and properties
  • Build a simple MVC application using Spring Boot, embedded Web Server and fat JARs or classic WARs
  • Implementing REST with Spring MVC and RestTemplate
  • Spring Security
  • Enable and extend metrics and monitoring capabilities using Spring Boot actuator
  • Utilize Spring Boot enhancements to testing

Pre-requisites:

  • Good understanding of web-application development using Java, an IDE (Eclipse, STS or IntelliJ) and a Servlet engine such as Tomcat or Jetty, specific Java concepts (annotations and lambdas) and dependency management using Maven or Gradle.
  • Java development experience
  • Experience with Spring Framework (Spring Core, Spring MVC, Spring Security and Spring REST)
  • Experience with Maven or Gradle

Target Audience:

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

Course Duration:

  • 35 hours – 5 days

Course Content:

MODULE 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

MODULE 2: SPRING JAVA CONFIGURATION: A DEEPER LOOK

  • External properties & Property sources
  • Environment abstraction
  • Using bean profiles
  • Spring Expression Language (SpEL)
  • How it Works: Inheritance based proxies

MODULE 3: ANNOTATION-BASED DEPENDENCY INJECTION

  • Autowiring and component scanning
  • Java configuration 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?
  • Differences between Spring AOP and AspectJ
  • Defining pointcut expressions
  • Implementing an advice: @Around, @Before, @After

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
  • Profile selection with @ActiveProfiles
  • Easy test data setup with @Sql

MODULE 8: DATA ACCESS AND JDBC WITH SPRING

  • How Spring integrates with existing data access technologies
  • DataAccessException hierarchy
  • Implementing caching using @Cacheable Embedded databases for testing
  • Spring‘s JdbcTemplate 

MODULE 9: DATABASE TRANSACTIONS WITH SPRING

  • Transactions overview
  • Transaction management with Spring
  • Isolation levels, transaction propagation and rollback rules
  • Transactions and integration testing

MODULE 10: SPRING BOOT INTRODUCTION

  • Introduction to Spring Boot
  • Value Proposition of Spring Boot
  • Creating a simple Boot application using Spring Initializer web-site

MODULE 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

MODULE 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

MODULE 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

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?
  • Configuring authentication
  • Implementing authorization by intercepting URLs
  • Authorization at the Java method level
  • Understanding the Spring Security filter chain

MODULE 16: ACTUATORS, METRICS AND HEALTH INDICATORS

  • Enabling Spring Boot Actuator
  • Custom Metrics
  • Health Indicators
  • Creating custom Health Indicators
  • External monitoring systems

MODULE 17: SPRING BOOT TESTING ENHANCEMENTS

  • Spring Boot testing overview
  • Integration testing and slices
  • Slices to test different layers of the application

 

Course Customization Options

To request a customized training for this course, please contact us to arrange.

Best selling courses

CLOUD COMPUTING

Enterprise Architecture

DATA SCIENCE

Tableau Basic

ARTIFICIAL INTELLIGENCE / MACHINE LEARNING / DEEP LEARNING

RPA with UiPath

PROGRAMMING / CODING

MATLAB Fundamentals