Spring Technologies

Developing Enterprise Applications using Spring Framework and JPA


3 days


Instructor Lead


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


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


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
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
  • Criteria API
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