Mastering the Spring 4 Framework


Spring is one of the most popular Java frameworks today. Unlike Java EE, Spring works well with any Java application from a simple console application to a sophisticated enterprise application, and increases development productivity, code maintainability and extensibility while improving code testability and application quality.
Spring is a layered framework that contains a complete lightweight container as its core and many additional packages that can flexibly integrate into Spring and extend its functionality.
This course teaches Spring’s philosophy, focuses on the internals of the Spring engine and covers some of the most popular additional packages that extend the framework.
The course includes comprehensive exercises that ensure participants gain all the information and hands-on needed to get familiar with the framework and apply it successfully in their projects.

Target Audience

Java developers, team leaders and project managers


Familiarity with the Java language


Introduction to Spring:

  • History
  • IoC and Dependency Injection
  • Spring philosophy
  • AOP
  • Testability

Inversion of Control:

  • Introduction
  • The importance of decoupling
  • Spring IoC container and the BeanFactory
  • Dependancies
  • Injection types
  • Bean Scope
  • Bean Lifecycle and Environment
  • Bean definition inheritance

Extending the Container:

  • Controlling the Bean creation using FactoryBeans
  • Bean post processors
  • Bean factory post processors

The Application Context:

  • Introduction to ApplicationContext
  • Stereotypes and Auto Detected Components
  • Annotations and the IoC Container
  • Creating Annotation-based Configuration
  • Mixing Annotations and XML

The SpEL:

  • Introduction to the Spring EL
  • The Type Conversion System

Aspect Oriented Programming – AOP:

  • Introduction
  • Motivation
  • Concepts and Terminology

The Spring AOP Model:

  • Introduction
  • Limitations
  • Spring’s Dynamic Proxy model
  • AspectJ annotation support
  • Aspect/Pointcut/Advise declarations
  • The AspectJ pointcut definition language
  • Introductions
  • Advisors
  • Aspect Lifecycle

Working with the Data Layer:

  • Transaction Management:
    • Introduction to Transactions
    • Declarative Transactions
    • Programmatic Transactions
    • Declarative vs. Programmatic
    • Resource Synchronization
  • Spring Data:
    • Introduction to Spring Data
    • Using Generated DAOs

Spring and REST:

  • Spring MVC:
    • Introduction
    • REST Controllers
    • SpringMVC Annotations
    • Sessions
    • Using JSON

Spring Boot:

  • Introduction to Spring Boot
  • The Starter Projects
  • Automatic Configuration
  • Customizations

Testing with Spring:

  • Introduction to Unit and Integration Testing
  • Unit Testing and Dependency Injection
  • Spring Mock Objects
  • Unit Testing utilities
  • The Spring TestContext Framework


4 days

Next public course

06/3 , 08/3 , 13/3 , 15/3/18

Enroll Now
Contact us