Software Engineering
a.a. 2019-2020
Introduction to Spring Framework
Prof. Luca Mainetti
Università del Salento
Roadmap
■ Introduction to Spring
■ Dependency Injection and IoC
■ Bean
■ AoP
■ Module Architecture
Introduction to Spring Framework 2 Luca Mainetti
What Is Spring Framework?
■ Spring is the most popular application development
framework for Java enterprise
■ Open source Java platform since 2003.
■ Spring supports all main application servers and JEE
standards
■ Spring handles the infrastructure so you can focus on your
application
■ Current version: 5.0.X
Introduction to Spring Framework 3 Luca Mainetti
What does Spring offer?
■ Dependency Injection
– Also known as IoC (Inversion of Control)
■ Aspect Oriented Programming
– Runtime injection-based
■ Portable Service Abstractions
– The rest of spring
• ORM, DAO, Web MVC, Web, etc.
• Allows access to these without knowing how they actually work
Introduction to Spring Framework 4 Luca Mainetti
Dependency Injection
■ The technology that actually defines Spring (Heart
of Spring).
■ Dependency Injection helps us to keep our classes
as indepedent as possible.
– Increase reuse by applying low coupling
– Easy testing
– More understandable
An injection is the passing of a dependency (a service) to a dependent
object (a client). Passing the service to the client, rather than allowing
a client to build or find the service, is the fundamental requirement of
the pattern.
Introduction to Spring Framework 5 Luca Mainetti
Dependency Injection and Inversion of Control
(IoC)
In software engineering, inversion of control (IoC)
describes a design in which custom-written
portions of a computer program receive the flow
of control from a generic, reusable library.
■ The Inversion of Control (IoC) is a general concept,
and it can be expressed in many different ways and
dependency Injection is merely one concrete
example of Inversion of Control.
Introduction to Spring Framework 6 Luca Mainetti
IoC container
■ The Spring container (IoC Container) is the core of
the Spring Framework.
■ The container will create the objects, wire them
together, configure them, and manage their
complete lifecycle from creation till destruction
Introduction to Spring Framework 7 Luca Mainetti
IoC container
■ The container gets its instructions on what objects to
instantiate, configure, and assemble by reading
configuration metadata provided.
■ The configuration metadata can be represented either by:
– XML
– Java annotations
– Java code.
Introduction to Spring Framework 8 Luca Mainetti
What is a Bean?
■ Typical java bean with a unique id
■ In spring there are basically two types
– Singleton
• One instance of the bean created and referenced each time it is
requested
– Prototype (non-singleton)
• New bean created each time
• Same as new ClassName()
■ A Spring IoC container manages one or more
beans
■ Beans are normally created by Spring as late as
possible
Introduction to Spring Framework 9 Luca Mainetti
Aspect Oriented Programming (AOP)
■ AOP entails breaking down program logic into distinct
parts called concerns.
■ The functions that span multiple points of an
application are called cross-cutting concerns and these
cross-cutting concerns are conceptually separate from
the application's business logic.
■ AOP is like triggers in programming languages such as
Perl, .NET, Java and others.
■ Examples of cross-cutting concerns:
– Logging
– Security
– Transaction
– Caching
Introduction to Spring Framework 10 Luca Mainetti
Aspect Oriented Programming (AOP)
■ Cross-cutting
T
r
S BookingService a
e L
o n
c s
u g
g a
r UserService
i c
i t
t n
g i
y o
CommentService n
Introduction to Spring Framework 11 Luca Mainetti
Aspect Oriented Programming (AOP)
Introduction to Spring Framework 12 Luca Mainetti
Spring Modules
■ The Spring
Framework consists
of features organized
into about 20
modules.
■ These modules are
grouped into Core
Container, Data
Access/Integration,
Web, AOP (Aspect
Oriented
Programming),
Instrumentation, and
Test.
Introduction to Spring Framework 13 Luca Mainetti