Creating Web applications using the Spring Framework

Who is the course for?
Java software developers eager to acquire programming skills using the Spring framework. As the course is cross-sectional, it can be successfully used by the software developers using framework in their daily work, who wish to systematize their knowledge and/or fill the gaps, explore other areas of the framework more deeply.
Purpose of the course
The aim of the course is to acquire practical programming skills using the Spring framework. The participants will acquire practical knowledge of how to properly prepare a project (XML or Java configuration), how to use dependency injection (IoC container), advanced AOP techniques, how to test applications (individual layers of components as well as the application as a whole), how to integrate the different layers in the Web application or with the use of Web services.


Programming skills in Java are required from the participants of the course.

Introduction to Spring
• Objectives of Spring Framework

  • Object creation control
  • Developing Internet applications
  • Support for data stability
  • Integration with other libraries
  • Brief overview of STS environment

Spring Framework Core

  • Programming with the use of components
  • Spring as a factory
  • Inversion of control
  • Configuration with the use of XML file

Day 1
• Alternative configuration with the use of annotations

  • Developmental use of the factory
  • Singletons and prototypes
  • Initialization of the initial state of the object

Dependency injection

  • Concept of dependency injection
  • Assembling objects
  • Automatic configuration (autowiring)
  • Order of object creation
  • Object life cycle
  • Container events


  • Method of operation and types of aspects
  • Adding aspects to the application
  • Preparation and configuration of advices
  • Defining points of intersection


  • ACID and properties of transactions
  • Transaction on the database side and transaction of the application
  • Automatic management of transactions
  • Declarative transactions
  • Development model of transaction management using TransactionTemplate

Data durability

  • Database configuration
  • DAO pattern and its application in a layered architecture
  • Useful ways to use the Spring data sources
  • Database without JPA
  • jdbcTemplate service
  • Simple object-relational mapping (MappingSqlQuery)Hibernate (JPA)
  • Concept of object-relational mapping

Day 2

  • Fundamentals of mapping
  • JPA overview
  • Mapping based on POJO
  • SessionFactory configuration
  • Configuration parameters

Hibernate in practice

  • Interface Session and its tasks
  • CRUD operations
  • Class mapping – classes of entities
  • Configuration via annotations
  • IDs Generator
  • Built-in Hibernate types
  • Persistent object life cycle

Hibernate advanced

  • Introduction to Hibernate Query Language
  • Query Interface
  • Creating and using queries
  • Named queries, projections and aggregates
  • Queries through the criteria (API Criteria)
  • Transaction overview
  • Hibernate Transaction API
  • Optimistic locking and versioning
  • Implementation of hashcode() and equals() methods
  • Efficiency

Spring MVC – general characteristics

  • What do we need the nth Web framework for?
  • Spring MVC Architecture
  • Development of Spring MVC applications

Spring MVC – basics

  • Spring container configuration in a Web application
  • Spring MVC tags

Day 3

Request handling

  • Form handling
  • Exception Handling

Advanced capabilities of Spring MVC

  • Application location
  • Development of views based on templates
  • Generating a response other than HTML
  • Data validation – JSR 303 and Spring mechanisms
  • Testing the application based on Spring MVC
  • Web application configurations for development, testing and production environment

Ask for this course