Developing Enterprise Applications using Spring Framework and JPA

This advanced course is designed for Java developers who need to learn how to use the Spring Framework to create well-designed, testable business applications in an agile manner. During this course, you will learn Spring's features and how to use them. You will also become familiar with the fundamental architectural issues you will need to be aware of when developing with the Spring framework. It is important to know how to use certain parts of the Spring framework, but even more important to be able to decide when to use them!

Topics Covered:

  • Work with the Spring Inversion of Control (IoC) Container
  • Effectively use JDBC , Hibernate and JPA for data access
  • Use JUnit, Spring, stubs and mocking frameworks to effectively implement automated unit and integration tests
  • Take advantage of Aspect-Oriented Programming (AOP) to keep code clean and maintainable
  • And much more...



  • Spring overview
  • Basic environment

Spring Architecture

  • Spring Framework definition
  • Spring Framework design principals
  • Sprint interfaces

Spring setup

  • Setting classpath and jar files
  • Setting configuration

Spring Core Concepts

  • Spring quick start
  • Writing bean definitions
  • Configuring objects
  • Creating an application context

Design Patterns

  • Inversion of Control
  • Dependency Injection

Bean Life-Cycle

  • Application context life-cycle
  • Initialization of beans
  • Using beans
  • Destruction
  • Other considerations

Spring Application Configuration

  • Bean definition inheritance
  • Inner beans
  • Property editors
  • Bean naming
  • Importing configuration files
  • Custom XML Namespaces

Testing Spring Application

  • Unit Testing vs. Integration Testing
  • Unit Testing
  • Stubs vs. Mocks
  • Integration Testing

AOP with Spring

  • Spring AOP
  • Implementing Aspect
  • Configure the Aspect as a Bean
  • Property changes with context
  • Useful spring JoinPoint Context
  • Context Selecting pointcuts
  • Advices with spring Aop
  • Advice best practices

Spring Data Access

  • Spring in enterprise data access
  • Spring resource management
  • Spring data access support
  • Data access in a layered architecture
  • Common data access configurations

Spring JDBC Access

  • Spring JDBC Template
  • JDBC Template Internals
  • Creating JDBC DAO
  • Configuring the Application

Spring Transaction Management

  • Why use transactions?
  • Local transaction management
  • Programmatic JTA
  • Declarative transactions
  • Spring transaction management
  • Transaction propagation

Object-Relational Mapping with Spring and JPA

  • Object-Relational Mapping - ORM
  • Java Persistence API – JPA
  • Configuration and Project Setup
  • Relational Mapping
  • Query and JPQL
  • Spring with JPA

Introducing Spring Data Project

  • Persistence with Spring Data JPA
  • Spring Data Project
  • Working with Repositories
  • Defining Query Methods
  • Query Creation from Method Names
  • Custom Repositories

Spring MVC

  • MVC and Spring MVC
  • Spring MVC configuration
  • Dispatcher Servlet, request life cycle
  • Creating controllers
  • Mapping requests to controllers
  • Validating input

RESTful Services

  • RESTful web services with Spring MVC

Spring Boot

  • Spring Boot Overview
  • Installations
  • Configuration
  • Starters
  • A Simple example. Running example
  • Creating executable jar


Developers who aim to develop Java applications within the Spring framework.


3 days


Instructor Lead


Core Java Syntax - (D-EJAVA-301-001) Effective JAVA Programming..