Il framework Spring è uno dei framework Java EE più popolari. In questo articolo, parleremo dei seguenti argomenti:
- Architettura del framework Spring
- Componenti principali di Spring
- Diversi progetti sotto l’ombrello del framework Spring.
I looked at the Google Trends chart for Spring Framework, Servlet, JSP, and JSF. It’s clear that Spring is far ahead from all other Java EE technologies.

Cos’è il framework Spring?
Spring è uno dei framework più popolari per l’edizione enterprise di Java. Sviluppatori di tutto il mondo utilizzano Spring per sviluppare applicazioni affidabili e di alta qualità. Il framework Spring è stato progettato da Rod Johnson. Da allora Spring è diventato una tecnologia alternativa nel mondo Java per il modello EJB. Puoi creare diversi tipi di applicazioni utilizzando il framework Spring.
Concetti principali di Spring – DI, IoC, AOP
- È impossibile capire cosa sia il framework Spring senza capire cosa sia l’Injection delle Dipendenze e l’Inversione di Controllo. L’Injection delle Dipendenze, anche chiamato DI, è uno dei tipi di Inversione di Controllo (IoC).
- Inversione del controllo – questo è il principio della programmazione orientata agli oggetti, in cui gli oggetti del programma non dipendono dalle implementazioni concrete di altri oggetti, ma possono avere conoscenza delle loro astrazioni (interfacce) per interagire in seguito.
- Iniezione delle dipendenze – è una composizione di pattern di progettazione strutturali, in cui per ogni funzione dell’applicazione c’è un oggetto (servizio) condizionatamente indipendente che può avere la necessità di utilizzare altri oggetti (dipendenze) conosciuti attraverso interfacce. Le dipendenze vengono trasferite (implementate) al servizio al momento della sua creazione. Questa è una situazione in cui introduciamo un elemento di una classe in un’altra. In pratica, l’ID viene implementato passando parametri al costruttore o utilizzando setter. Le librerie che implementano questo approccio sono anche chiamate contenitori IoC.
- Programmazione orientata agli aspetti – un paradigma di programmazione che consente di distinguere la funzionalità trasversale (funzionale) nell’applicazione. Queste funzioni, che attraversano più nodi dell’applicazione, sono chiamate preoccupazioni trasversali e queste note trasversali sono separate dalla logica di business immediata dell’applicazione. Nella OOP, l’unità chiave è la classe, mentre nella AOP, l’elemento chiave è l’aspetto. L’ID aiuta a separare le classi dell’applicazione in moduli separati, e la AOP aiuta a separare le preoccupazioni trasversali dagli oggetti che interessano.
Architettura del Framework Spring
Il Framework Spring è diviso in vari moduli separati, che ti consentono di decidere quali utilizzare nella tua applicazione. L’immagine sottostante illustra i moduli più importanti dell’architettura del Framework Spring. Esaminiamo uno per uno i moduli dell’ecosistema Spring.
Componenti Principali del Framework Spring
Il contenitore principale di Spring è composto da quattro moduli: SpEL, Context, Core, Beans. La descrizione di questi elementi è la seguente:
- Il modulo SpEL fornisce un potente linguaggio di espressione per manipolare gli oggetti durante l’esecuzione.
- Context è costruito sulla base di Beans e Core e consente di accedere a qualsiasi oggetto definito nelle impostazioni. L’elemento chiave del modulo Context è l’interfaccia ApplicationContext.
- Il modulo Core fornisce parti chiave del framework, inclusi le proprietà IoC e DI.
- Il modulo Bean è responsabile della creazione e gestione dei Spring Beans – unità strutturale del contesto dell’applicazione.
Framework Web di Spring
Il livello Web del framework Spring è composto da Web, Web-MVC, Web-Socket, Web-Portlet, ecc.
- Il modulo Web fornisce funzionalità come il download di file, la creazione di applicazioni web, servizi web rest, ecc.
- Web-MVC contiene un’implementazione di Spring MVC per le applicazioni web.
- Web-Socket fornisce supporto per la comunicazione tra il client e il server, utilizzando Web-Sockets nelle applicazioni web.
- Web-Portlet fornisce un’implementazione MVC con ambiente portlet.
Accesso ai Dati del Framework Spring
Il container Accesso/Dati di integrazione è composto da JDBC, ORM, OXM, JMS e il modulo Transazioni.
- JDBC fornisce uno strato astratto di JDBC ed elimina la necessità per lo sviluppatore di registrare manualmente il codice monotono associato alla connessione al database.
- Spring ORM fornisce integrazione con ORMs popolari come Hibernate, JDO, che sono implementazioni di JPA.
- Il modulo OXM è responsabile del collegamento tra l’oggetto/XML – XMLBeans, JAXB, ecc.
- Il modulo JMS (Java Messaging Service) è responsabile della creazione, invio e ricezione di messaggi.
- Le transazioni supportano la gestione delle transazioni per le classi che implementano determinati metodi e POJO.
Moduli vari
Spring include anche altri moduli importanti, come AOP, Aspects, Instrumentation, Messaging e Test.
- AOP implementa la programmazione orientata agli aspetti e consente di utilizzare l’intero arsenale delle funzionalità AOP.
- Il modulo Aspects fornisce l’integrazione con AspectJ, che è anche un potente framework AOP.
- L’Instrumentation è responsabile del supporto alla strumentazione delle classi e al caricatore di classi, utilizzati nelle applicazioni server.
- Il modulo Messaging fornisce il supporto STOMP.
- Infine, il modulo Test fornisce il testing utilizzando TestNG o il framework JUnit.
Novità di Spring 5
Spring 5 ha portato un’importante aggiornamento rispetto a Spring 4. Alcune delle importanti caratteristiche di Spring 5 sono:
- Supporto per Java 8, Java 9, Java EE 7, Java EE 8, Servlet 4.0, Bean Validation 2.0 e JPA 2.2. Sono felice di vedere che Spring sta cercando di stare al passo con le ultime versioni delle principali tecnologie utilizzate.
- Miglioramento del logging con il nuovo modulo – spring-jcl.
- Le operazioni sui file utilizzano gli stream NIO 2, quindi con prestazioni migliorate.
- Supporto per Reactor 3.1 Flux e Mono, nonché per RxJava 1.3 e 2.1 come valori restituiti dai metodi del controller Spring MVC.
- Supporto per Kotlin, Project Lombok, JSON Binding API come alternativa a Jackson e GSON.
- Spring WebFlux – Spring diventa reattivo.
- Supporto per JUnit 5
- Supporto alla programmazione funzionale attraverso Kotlin.
Puoi controllare i progetti Spring nella nostra Repository GitHub.
Riferimenti: Sito ufficiale di Spring, Documentazione di riferimento di Spring.
Source:
https://www.digitalocean.com/community/tutorials/spring-framework