3. 03
04
05
06
07
08
09
0202
01
Java Spring Basics
Introduzione al Framework Spring
Chi sono
Gabriele Manfredi
Java Developer & Community Leader
Programmatore e giocatore da tavolo seriale
Mail: gabriele.manfredi@objectmethod.it
Skype: gabriele_manfredi
4. 03
04
05
06
07
08
02
01
Java Spring Basics
Introduzione al Framework Spring
09
a cura di Donato Andrisani e Gabriele Manfredi
Introduzione a Spring Framework
Spring Basics
...and now the Code! pt2
Conclusioni
Estrazione licenza JetBrains
Overview
Concetti base
...and now the Code! pt1
Spring Modules
5. 03
04
05
06
07
08
02
01
Java Spring Basics
Introduzione al Framework Spring
09
Cosa è Spring?
Spring è un framework che ha come obiettivo principale quello di
gestire la complessità nello sviluppo di applicazioni "enterprise" in
ambiente Java.
0101
INTRODUZIONE
7. 03
04
05
06
07
08
02
01
Java Spring Basics
Introduzione al Framework Spring
OVERVIEW
0202
Ma perchè usare Spring?
● Modulare
● Lightweight container
● Integrabile
● POJO based
● Facile da testare
● Alto livello di disaccoppiamento
8. 03
04
05
06
07
08
02
01
Java Spring Basics
Introduzione al Framework Spring
CONCETTIBASE
02
03
IOC e DI
Per comprendere a fondo le potenzialità di Spring
bisogna prima introdurre due concetti fondamentali.
Inversion of Control (IoC) e Dependency Injection (DI).
9. 03
04
05
06
07
08
02
01
Java Spring Basics
Introduzione al Framework Spring
02
03
Inversion Of Control(IoC)
L’Inversion of Control è un principio architetturale basato sul
concetto di invertire il controllo del flusso di sistema (Control Flow)
rispetto alla programmazione tradizionale.
10. 03
04
05
06
07
08
02
01
Java Spring Basics
Introduzione al Framework Spring
02
03
Inversion Of Control(IoC)
Il principio sulla quale si basano i framework IoC sono conosciuti
come Hollywood Principle (“Non chiamarci, ti chiameremo noi”).
11. 03
04
05
06
07
08
02
01
Java Spring Basics
Introduzione al Framework Spring
02
03
Dependency Injection(DI)
Classe A Classe B
dipende da
Scopo : separare il comportamento di una componente dalla
risoluzione delle sue dipendenze.
Motivazioni:
● Progettazione di test difficoltosa
● Riutilizzo scarso della componente
● Scarsa manutenibilità
Le dipendenze vanno minimizzate!!!
12. 03
04
05
06
07
08
02
01
Java Spring Basics
Introduzione al Framework Spring
02
03
Dependency Injection(DI)
Con il termine Dependency Injection (DI) si intende una specifica
implementazione dello IoC rivolta ad invertire il processo di
risoluzione delle dipendenze, facendo in modo che queste
vengano iniettate dall’esterno
13. 03
04
05
06
07
08
02
01
Java Spring Basics
Introduzione al Framework Spring
02
03
Dependency Injection(DI)
1. Constructor Injection, dove la dipendenza viene iniettata
tramite l’argomento del costruttore
2. Setter Injection, dove la dipendenza viene iniettata
attraverso un metodo “set”
3. Interface Injection che si basa sul mapping tra interfaccia e
relativa implementazione (non utilizzato in Spring)
public class ConstructorInjection {
private Dependency dep;
public ConstructorInjection(Dependency dep) {
this.dep = dep; }
}
public class SetterInjection {
private Dependency dep;
public void setMyDependency(Dependency dep) {
this.dep = dep; }
}
16. 03
04
05
06
07
08
02
01
Java Spring Basics
Introduzione al Framework Spring
SPRINGBASICS
02
05
Core Container
BeanFactory ApplicationContext
che definisce le
funzionalità di base per
la gestione dei bean
che estende funzionalità
basilari del beanFactory
17. 03
04
05
06
07
08
02
01
Java Spring Basics
Introduzione al Framework Spring
02
05
BeanFactory/ApplicationContext
ApplicationContext
● eredita funzionalità della
beanFactory
● supporto J2EE
● propagazione eventi
● internazionalizzazione
● utilizzo di risorse
BeanFactory
● implementazione estesa
del Factory method Pattern
● crea i bean necessari
all’applicazione
● inizializza le dipendenze
● gestire il ciclo di vita
21. 03
04
05
06
07
08
02
01
Java Spring Basics
Introduzione al Framework Spring
09
05
@Scope
● Singleton: viene creata un'istanza del bean per l'intera
applicazione.
● Prototype: viene creata un'istanza del bean ogni volta che
il bean viene iniettato o richiamato dal contesto
dell'applicazione
● Session: in un'applicazione Web, viene creata un'istanza
del bean per ogni sessione.
● Request: in un'applicazione Web, viene creata un'istanza
del bean per ogni richiesta.
24. 03
04
05
06
07
08
02
01
Java Spring Basics
Introduzione al Framework Spring
02
SPRING MVC
Il modulo Spring Web MVC implementa il pattern
architetturale Model-View-Controller (MVC) con una serie
di componenti pronte all’uso che consentono codice molto
disaccoppiato.
● Il “Model” è implementato da semplici POJO.
● La “View” implementata da jsp o un linguaggio di
templating analogo
● Il “Controller” che costruisce gli appropriati oggetti
del model e li passa alla view per il rendering.
07
25. 03
04
05
06
07
08
02
01
Java Spring Basics
Introduzione al Framework Spring
02
SPRING MVC
In Spring l’MVC è disegnato intorno a una
DispatcherServlet che amministra tutte le richieste e
risposte HTTP, inviandole ai corrispettivi controller e
attendendo il model e la view da renderizzare:
07