close

Quadro primaverile

Vai alla navigazione Vai alla ricerca
Quadro primaverile
Spring Framework Logo 2018.svg
Informazione Generale
tipo di programma framework per applicazioni web mobile
sviluppatore Fonte di primavera
Versione iniziale 1 ottobre 2002
Licenza Licenza Apache 2.0
Stato attuale Attivo
Informazioni tecniche
Previsto in
Piattaforme supportate macchina virtuale Java
Versioni
Ultima versione stabile 5.1.6 (1 aprile 2019 (3 ​​anni, 6 mesi e 16 giorni) [ 1 ] ​)
Collegamenti

Spring è un'inversione open source del contenitore di controllo e del framework di sviluppo di applicazioni per la piattaforma Java . [ 2 ]

La prima versione è stata scritta da Rod Johnson, che l'ha pubblicata insieme alla pubblicazione del suo libro Expert One-on-One J2EE Design and Development (Wrox Press, ottobre 2002). Il framework è stato inizialmente rilasciato con la licenza Apache 2.0 nel giugno 2003. La prima versione principale è stata la versione 1.0, che è apparsa nel marzo 2004 ed è stata seguita da ulteriori pietre miliari nel settembre 2004 e nel marzo 2005. La versione 1.2.6 Spring Framework ha vinto i Jolt Awards e Jax Innovation Awards nel 2006. [ 3 ] ​[ 4 ]​ Spring Framework 2.0 è stato rilasciato nel 2006, la versione 2.5 nel novembre 2007, la Spring 3.0 nel dicembre 2009 e la Spring 3.1 due anni dopo. [ 5 ] L'inizio dello sviluppo della versione 4.0 è stato annunciato nel gennaio 2013. [ 6 ] La versione attuale è 5.1.6. [ 1 ]

Sebbene le caratteristiche fondamentali dello Spring Framework possano essere utilizzate in qualsiasi applicazione sviluppata in Java, esistono diverse estensioni per la creazione di applicazioni web sulla piattaforma Java EE . Sebbene non imponga alcun modello di programmazione particolare, questo framework è diventato popolare nella comunità in quanto è considerato un complemento del modello EJB ( Enterprise JavaBean ).

Storia

I primi componenti di quello che è diventato lo Spring Framework sono stati scritti da Rod Johnson nel 2000, mentre lavorava come consulente indipendente per i suoi clienti nel settore finanziario a Londra. Durante la scrittura del libro Expert One-on-one J2EE Design and Development (da programmatore a programmatore) , Rod ha esteso il suo codice per incapsulare la sua visione di come le applicazioni che lavorano con varie parti della piattaforma J2EE potrebbero diventare più semplici ed efficienti rispetto a quelle degli sviluppatori e le aziende stavano usando allora.

Nel 2001 i modelli di programmazione dominanti per le applicazioni basate sul Web sono stati offerti da Java Servlet API e Enterprise JavaBeans , entrambe specifiche create da Sun Microsystems in collaborazione con altri fornitori e parti interessate che hanno goduto di grande popolarità nella comunità Java. Le applicazioni che non erano basate sul Web, come le applicazioni basate su client o le applicazioni batch , potevano essere scritte sulla base di strumenti e progetti open source o commerciali che fornissero le funzionalità richieste per tali sviluppi.

Infine, dopo aver pubblicato il suo libro nel 2002, Rod Johnson ha presentato per la prima volta il suo codice per il framework Java Interface 21 che sarebbe diventato la base del framework di primavera [ 7 ] . Si è formato un piccolo team di sviluppatori sperando di lavorare sull'estensione del framework ed è stato creato un progetto su Sourceforge nel febbraio 2003. Dopo aver lavorato al suo sviluppo per oltre un anno, hanno rilasciato una prima versione (versione 1.0) nel marzo 2004. Dopo questo rilascio , Spring ha guadagnato molta popolarità nella comunità Java, in parte grazie al suo utilizzo di Javadoc e alla documentazione di riferimento superiore alla media per un progetto open source.

Tuttavia, anche il quadro di primavera è stato pesantemente criticato nel 2004 ed è ancora oggetto di acceso dibattito. Al momento della sua prima major release, molti sviluppatori e leader di pensiero vedevano in Spring un grande passo avanti rispetto al modello di programmazione tradizionale; questo era particolarmente vero per Enterprise JavaBeans. Uno degli obiettivi di progettazione dello Spring Framework è la sua facilità di integrazione con gli standard J2EE e gli strumenti commerciali esistenti. Ciò elimina in parte la necessità di definirne le caratteristiche in un documento di specifica redatto da un comitato ufficiale e che potrebbe essere criticato.

Lo Spring Framework ha reso popolari tecniche sconosciute alla maggior parte dei programmatori in un periodo di tempo molto breve. L'esempio più notevole è l' inversione del controllo . Nel 2004, Spring ha goduto di tassi di adozione estremamente elevati e, offrendo il proprio framework AOP ( Aspect-Oriented Programming ) , ha reso il suo paradigma di programmazione più popolare nella comunità Java. [ citazione necessaria ]

Nel 2005 la primavera ha superato i tassi di adozione dell'anno precedente a causa delle nuove versioni e dell'aggiunta di ulteriori funzionalità. Anche il forum della comunità formato attorno allo Spring Framework (The Spring Forum), iniziato alla fine del 2004, ha contribuito ad aumentare la popolarità del framework e da allora è cresciuto fino a diventare la più importante fonte di informazioni e aiuto per i suoi utenti.

Moduli

Lo Spring Framework comprende diversi moduli che forniscono una gamma di servizi:

  • Inversione del wrapper di controllo : consente la configurazione dei componenti dell'applicazione e la gestione del ciclo di vita degli oggetti Java, principalmente tramite l' inserimento delle dipendenze .
  • Programmazione orientata all'aspetto : consente l'implementazione di routine di attraversamento.
  • Accesso ai dati : lavorare con RDBMS su piattaforma Java, utilizzando strumenti Java Database Connectivity e Relational Object Mapping con database NoSQL .
  • Gestione delle transazioni : unifica diverse API di gestione e coordina le transazioni per gli oggetti Java.
  • Controller di visualizzazione modello : un framework basato su HTTP e servlet , che fornisce strumenti per l'estensione e la personalizzazione di applicazioni Web e servizi Web RESTful .
  • Remote Access Framework : consente l'importazione e l'esportazione in stile RPC di oggetti Java su reti che supportano i protocolli basati su RMI , CORBA e HTTP , inclusi i servizi Web ( SOAP ).
  • Convenzione sulla configurazione : il modulo Spring Roo offre una soluzione rapida per lo sviluppo di applicazioni basate su Spring Framework, privilegiando la semplicità senza perdere in flessibilità.
  • Elaborazione batch : un framework per l'elaborazione di grandi volumi che include funzioni di registrazione/traccia, gestione delle transazioni, statistiche sull'elaborazione delle attività, riavvio delle attività e gestione delle risorse.
  • Autenticazione e autorizzazione : processi di sicurezza configurabili che supportano una gamma di standard, protocolli, strumenti e pratiche attraverso il sottoprogetto Spring Security (ex Acegi).
  • Amministrazione remota : visibilità della configurazione e gestione degli oggetti Java per la configurazione locale o remota tramite JMX .
  • Messaggi : Registro configurabile degli oggetti del destinatario dei messaggi, per un consumo trasparente da via JMS , un miglioramento dell'invio di messaggi rispetto alle API JMS standard.
  • Testing : supporto di classe per lo sviluppo di unit test e integrazione.

Inversione del contenitore di controllo

Il cuore di Spring Framework è il suo container Inversion of Control (IoC). Il suo compito è creare un'istanza, inizializzare e connettere oggetti dell'applicazione, oltre a fornire una serie di funzionalità aggiuntive disponibili in Spring per tutta la vita dell'oggetto. [ 8 ]

Gli oggetti creati e gestiti dal contenitore sono chiamati oggetti gestiti o bean . Questi oggetti sono di tipo POJO . Per svolgere la sua attività, il contenitore necessita di informazioni che indichino come creare un'istanza e connettere i bean tra loro . Queste informazioni sono chiamate metadati di configurazione. Esistono diversi modi per fornire queste informazioni: basato su XML, basato su annotazioni o basato su oggetti Java (dalla primavera 3.0). Il contenitore è indipendente dal formato dei metadati di configurazione. L'utente può utilizzare qualsiasi formato desideri e persino combinarli nella stessa applicazione. [ 8 ]

Gli oggetti possono essere ottenuti tramite la ricerca delle dipendenze o tramite l' inserimento delle dipendenze . [ 9 ] ​la ricerca delle dipendenze è un modello in cui all'oggetto contenitore viene richiesto un oggetto con un nome specifico o di un tipo specifico. L'inserimento delle dipendenze è un modello in cui il contenitore passa oggetti per nome ad altri oggetti, tramite metodi di costruzione, proprietà o metodi factory.

In molti casi, quando si utilizzano altre parti di Spring Framework non è necessario utilizzare il Wrapper, sebbene il suo utilizzo consentirà probabilmente di semplificare la configurazione e la personalizzazione di un'applicazione. Spring Container fornisce un meccanismo coerente per la configurazione delle applicazioni e si integra con quasi tutti gli ambienti Java, dalle piccole applicazioni alle grandi applicazioni aziendali.

Il container può essere parzialmente convertito in un container EJB 3.0 tramite il progetto Pitchfork . Alcuni criticano lo Spring Framework per non essere conforme agli standard. [ 10 ] Tuttavia, SpringSource non vede la conformità a EJB 3 come un obiettivo importante, affermando che Spring Framework e il contenitore consentono modelli di programmazione più potenti. [ 11 ]​ Non crei un oggetto, ma descrivi come deve essere creato, definendolo nel file di configurazione di Spring. Non chiami servizi e componenti, ma dici quali servizi e componenti devono essere chiamati, definendoli nei file di configurazione di Spring. Ciò rende il codice più facile da gestire e più facile da testare usando Dependency Injection (IoC).

Vedi anche

Note e riferimenti

  1. a b Spring Framework 5.1.6, 5.0.13 e 4.3.23 disponibili ora
  2. Tour delle caratteristiche di SpringSource
  3. ^ Joltwinner 2006
  4. ^ JAX Innovation Award Gewinner 2006
  5. ^ SpringSource.org
  6. Prossima fermata: Spring Framework 4.0. (in inglese) . Estratto il 24 settembre 2019.
  7. "La primavera: il framework per applicazioni Java complesse" . IONOS Guida digitale . Estratto il 28 giugno 2022 . 
  8. ^ a b Inizio primavera Archiviato il 19 febbraio 2018 in Internet Archive.. Capitolo 2. Mert Çalıskan e Kenan Sevindik Editore John Wiley & Sons, Inc. 2015
  9. Qual è la differenza tra la ricerca delle dipendenze e l'inserimento delle dipendenze - Forum di primavera . Forum.springsource.org (28-10-2009). Estratto il 24-11-2013.
  10. ^ Primavera VS EJB3
  11. ^ "Domande frequenti su Pitchfork" . Estratto il 6 giugno 2006 .  

Bibliografia

Collegamenti esterni