• Skip to primary navigation
  • Skip to main content
  • Skip to footer

Codemotion Magazine

We code the future. Together

  • Discover
    • Events
    • Community
    • Partners
    • Become a partner
    • Hackathons
  • Magazine
    • Backend
    • Dev community
    • Carriere tech
    • Intelligenza artificiale
    • Interviste
    • Frontend
    • DevOps/Cloud
    • Linguaggi di programmazione
    • Soft Skill
  • Talent
    • Discover Talent
    • Jobs
    • Manifesto
  • Companies
  • For Business
    • EN
    • IT
    • ES
  • Sign in
ads

CodemotionSettembre 21, 2023

La guida definitiva al Framework Spring

Backend
Codemotion Guide to Spring Framework
facebooktwitterlinkedinreddit

Questa rapida guida di Codemotion su Spring offre spunti e concetti chiave per comprendere e iniziare con questo framework popolare.

Indice
  1. Una breve storia di Spring
  2. Struttura modulare
    • Modularità per la progettazione di applicazioni Java EE
    • Il Core Container
  3. Spring MVC vs Spring Boot
    • Spring Boot semplifica la vita
    • Caratteristiche chiave di Spring Boot
      • Starter per semplificare la configurazione
      • Server integrato
      • Metriche, verifica e configurazione esternalizzate
      • Auto Setup
      • Inversione di controllo (IoC)
    • Programmazione orientata agli aspetti (AOP)
    • Transazioni dei dati
    • Concetto di Transazione
  4. Primi passi con Spring

Una breve storia di Spring

Oggi, il Framework Spring è uno standard de facto. Centinaia di migliaia di sviluppatori in tutto il mondo lo utilizzano con grande successo.

Recommended article
Giugno 3, 2025

La signature chain: garanzia di autenticità, integrità e sequenzialità nei documenti digitali

Antonio Musarra

Backend

Spring è uno strumento open source creato nel 2003 per superare una grave lacuna nello standard ufficiale e offrire una soluzione reale di contenitore di componenti leggeri. Nel ottobre 2002, è stato pubblicato il libro di Rod Johnson “Expert One-on-One J2EE Design and Development”, che ha discusso lo stato attuale dello sviluppo di applicazioni enterprise in Java e ha evidenziato diverse gravi carenze di Java EE e del framework dei componenti EJB.

Johnson ha suggerito una soluzione più semplice focalizzata su classi Java ordinarie e sull’iniezione delle dipendenze. Tuttavia, sebbene alcuni considerino Java EE e Spring come rivali, Spring è un framework modulare per il backend che dovrebbe essere visto come complementare a Java EE.

Dal suo inizio, Spring continua a innovare ed evolversi con una comunità attiva che offre feedback continuo.

Struttura modulare

Il framework Spring contiene 20 moduli, tra cui Core, Beans, Context, Expression Language, AOP, Aspects, Instrumentation, JDBC, ORM, OXM, JMS, Transaction, Web, Servlet e Struts.

Modularità per la progettazione di applicazioni Java EE

Il framework modulare di Spring gli conferisce una certa facilità per la progettazione e la creazione di applicazioni Java EE. Oggi integra implementazioni di altre tecnologie come “.NET” o Python.

I moduli di base di Spring (per lo sviluppo di applicazioni Java EE) sono 20 in totale e l’efficacia di Spring rispetto ad altri framework Java è dovuta al fatto che utilizza Beans (semplici POJO, non sono JavaBeans), file di configurazione (file XML) e annotazioni (dalla versione 2.0, le annotazioni di Spring sono state rafforzate dalla versione 2.5).

Il Core Container

Il Core Container è composto dai moduli Core stessi, Beans, Context ed EL (Expression Language):

  • Spring contiene 20 moduli: Core, Beans, Context, Expression Language, AOP, Aspects, Instrumentation, JDBC, ORM, OXM, JMS, Transaction, Web, Servlet e Struts, tra gli altri.
  • Il modulo Core fornisce le funzionalità di base del framework oltre a IoC (Inversione di Controllo) e all’iniezione delle dipendenze.
  • Il modulo Beans offre l’interfaccia BeanFactory che consente l’implementazione del pattern Factory Method.
  • Il modulo Context si basa sulla solida base fornita dai moduli Core e Beans ed è un modo per accedere agli oggetti definiti e configurati all’interno di un’applicazione sviluppata con Spring. L’interfaccia ApplicationContext è il punto focale del modulo Context.
  • Il modulo SpEL (Spring Expression Language) fornisce un potente linguaggio di espressione (derivato da EL) che consente di manipolare gli oggetti a tempo di esecuzione in un’applicazione Spring.
  • Il Framework Spring utilizza diverse pratiche di programmazione comprovate come IoC (Inversione di Controllo) e design pattern come il pattern Factory e il pattern Singleton, per citarne solo due. Con il pattern Factory, Spring fornisce due tipi di implementazione del contenitore IoC utilizzando le interfacce BeanFactory e ApplicationContext. L’interfaccia ApplicationContext deriva dall’interfaccia BeanFactory, mantenendo la loro compatibilità e rendendo i file di configurazione dei bean di entrambe le implementazioni identici.

Lettura consigliata: La migliore libreria per la manipolazione dei colori in JavaScript


framework spring

Spring MVC vs Spring Boot

Spring MVC è principalmente utilizzato per lo sviluppo di applicazioni web, mentre Spring è un framework backend che richiede configurazioni personalizzate. D’altra parte, Spring Boot è pronto all’uso.

Spring Boot semplifica la vita

Spring Boot semplifica notevolmente lo sviluppo di applicazioni Spring. Si basa su tutte le funzionalità predefinite di Spring e consente di gestire tutte le funzioni di qualsiasi applicazione Java. A seconda della complessità e della configurazione, Spring Boot può essere di grande aiuto nel ridurre la complessità delle configurazioni Spring.

In poche parole, Spring Boot rappresenta un’estensione del framework Spring, che include le configurazioni standard necessarie per l’avvio di un’applicazione Spring.

Caratteristiche chiave di Spring Boot

Ecco alcune delle caratteristiche chiave di Spring Boot:

Starter per semplificare la configurazione

Spring Boot offre dipendenze simili a starter che semplificano notevolmente la creazione e la configurazione dell’applicazione.

Server integrato

Spring Boot include un server integrato, eliminando la complessità della distribuzione delle applicazioni.

Metriche, verifica e configurazione esternalizzate

Spring Boot fornisce una serie di strumenti per la gestione delle metriche, la verifica e la configurazione, il che facilita notevolmente la manutenzione dell’applicazione.

Auto Setup

Spring Boot offre funzionalità di auto-configurazione, riducendo il carico di lavoro per gli sviluppatori.

Inversione di controllo (IoC)

L’Inversione di Controllo (IoC) è un principio di progettazione fondamentale di Spring. Il framework Spring IoC è completo e complesso e si basa su tre elementi chiave:

  • Configurazione tramite file XML per collegare le implementazioni alle interfacce.
  • Le classi sono considerate bean e quindi hanno getter e setter per i campi da iniettare.
  • L’iniezione avviene tramite un file di configurazione, di default ApplicationContext.xml, da Spring.

Programmazione orientata agli aspetti (AOP)

Come framework modulare, Spring supporta l’implementazione della programmazione orientata agli aspetti (AOP). In AOP, è possibile utilizzare concetti come i Consigli e i Punti di Taglio per separare il codice aziendale dal codice tecnico relativo a questioni trasversali.

Transazioni dei dati

Spring Transaction è il modulo specifico responsabile dell’integrazione delle transazioni e offre diversi vantaggi:

  • Fornisce un’astrazione sulle diverse soluzioni disponibili nel mondo Java per la gestione delle transazioni.
  • Si basa sulla programmazione orientata agli aspetti (AOP) per gestire la demarcazione delle transazioni nel codice dell’applicazione.
  • Consente la gestione dichiarativa delle transazioni.

Concetto di Transazione

La nozione di transazione è fondamentale nei sistemi informativi e nei database relazionali (RDBMS) come Oracle, MySQL e PostgreSQL. Una transazione è definita da quattro proprietà, rappresentate dall’acronimo ACID:

  • Atomicità: una transazione garantisce che tutte le operazioni al suo interno vengano eseguite con successo o che nessuna di esse venga mantenuta.
  • Coerenza: la transazione garantisce che sposti il sistema da uno stato valido a un altro stato valido.
  • Isolamento: due transazioni sono isolate l’una dall’altra, producendo lo stesso risultato indipendentemente dall’ordine di esecuzione.
  • Durabilità: la transazione garantisce che le modifiche apportate al sistema siano conservate in modo permanente.

Le transazioni vengono demarcate all’interno del codice dell’applicazione per definire quali operazioni debbano essere eseguite all’interno di una transazione.

Primi passi con Spring

Esistono numerose risorse per aiutarti a familiarizzare con il framework. Due libri che ti permetteranno di comprendere la potenza di Spring sono “Spring in Action” di Craig Walls e “Spring Recipes” di Gary Mak e altri.

Spring è facile da apprendere perché l’intero framework modulare è progettato per funzionare con POJO (Plain Old Java Objects), senza dipendere da interfacce speciali, classi astratte o simili. Gli sviluppatori possono scrivere software come normali applicazioni Java: interfacce, classi ed enumerazioni e utilizzare Spring per collegare i componenti, senza dover fare straordinari sforzi per realizzare la connessione.

Related Posts

VanillaCreamJS: JavaScript con i superpoteri

Riccardo Degni
Maggio 28, 2025

Come risolvere il dual write problem nei sistemi distribuiti

Codemotion
Maggio 22, 2025

Top 10 piattaforme online per fare pratica con Python

Lucilla Tomassi
Maggio 13, 2025

TechPills per tutti: Inizia a creare API REST con Django REST Framework

raffaelegrieco.it
Maggio 12, 2025
Share on:facebooktwitterlinkedinreddit

Tagged as:Framework sviluppo software

Codemotion
Articoli scritti dallo staff di Codemotion. Notizie tech, ispirazione, ultime tendenze nello sviluppo del software e molto altro.
15 pessimi consigli per gli sviluppatori web e mobile
Previous Post
Come mettere in piedi un progetto Cypress in TypeScript
Next Post

Footer

Discover

  • Events
  • Community
  • Partners
  • Become a partner
  • Hackathons

Magazine

  • Tech articles

Talent

  • Discover talent
  • Jobs

Companies

  • Discover companies

For Business

  • Codemotion for companies

About

  • About us
  • Become a contributor
  • Work with us
  • Contact us

Follow Us

© Copyright Codemotion srl Via Marsala, 29/H, 00185 Roma P.IVA 12392791005 | Privacy policy | Terms and conditions