Spring Framework - Panoramica
Spring è il framework di sviluppo di applicazioni più popolare per Java aziendale. Milioni di sviluppatori in tutto il mondo utilizzano Spring Framework per creare codice ad alte prestazioni, facilmente testabile e riutilizzabile.
Il framework Spring è una piattaforma Java open source. Inizialmente è stato scritto da Rod Johnson ed è stato rilasciato per la prima volta con la licenza Apache 2.0 nel giugno 2003.
La primavera è leggera quando si tratta di dimensioni e trasparenza. La versione base del framework Spring è di circa 2 MB.
Le funzionalità principali di Spring Framework possono essere utilizzate nello sviluppo di qualsiasi applicazione Java, ma esistono estensioni per la creazione di applicazioni Web sulla piattaforma Java EE. Il framework Spring mira a rendere lo sviluppo J2EE più facile da usare e promuove buone pratiche di programmazione abilitando un modello di programmazione basato su POJO.
Vantaggi dell'utilizzo di Spring Framework
Di seguito è riportato l'elenco di alcuni dei grandi vantaggi dell'utilizzo di Spring Framework:
Spring consente agli sviluppatori di sviluppare applicazioni di classe enterprise utilizzando POJO. Il vantaggio di utilizzare solo POJO è che non è necessario un prodotto contenitore EJB come un server applicazioni, ma si ha la possibilità di utilizzare solo un contenitore servlet robusto come Tomcat o qualche prodotto commerciale.
La primavera è organizzata in modo modulare. Anche se il numero di pacchetti e classi è notevole, devi preoccuparti solo di quelli che ti servono e ignorare il resto.
Spring non reinventa la ruota, ma fa davvero uso di alcune delle tecnologie esistenti come diversi framework ORM, framework di registrazione, timer JEE, Quartz e JDK e altre tecnologie di visualizzazione.
Testare un'applicazione scritta con Spring è semplice perché il codice dipendente dall'ambiente viene spostato in questo framework. Inoltre, utilizzando i POJO in stile JavaBean, diventa più facile utilizzare l'inserimento delle dipendenze per l'inserimento dei dati di test.
Il framework web di Spring è un framework MVC web ben progettato, che fornisce un'ottima alternativa ai framework web come Struts o altri framework web troppo ingegnerizzati o meno popolari.
Spring fornisce una comoda API per tradurre le eccezioni specifiche della tecnologia (lanciate da JDBC, Hibernate o JDO, ad esempio) in eccezioni coerenti e non controllate.
I contenitori IoC leggeri tendono ad essere leggeri, soprattutto se paragonati ai contenitori EJB, ad esempio. Ciò è utile per lo sviluppo e la distribuzione di applicazioni su computer con memoria e risorse della CPU limitate.
Spring fornisce un'interfaccia di gestione delle transazioni coerente che può scalare fino a una transazione locale (utilizzando un singolo database, ad esempio) e scalare fino a transazioni globali (utilizzando JTA, ad esempio).
Iniezione di dipendenza (DI)
La tecnologia con cui Spring si identifica maggiormente è la Dependency Injection (DI)sapore di inversione di controllo. IlInversion of Control (IoC)è un concetto generale e può essere espresso in molti modi diversi. Dependency Injection è solo un esempio concreto di inversione del controllo.
Quando si scrive un'applicazione Java complessa, le classi dell'applicazione dovrebbero essere il più indipendenti possibile da altre classi Java per aumentare la possibilità di riutilizzare queste classi e per testarle indipendentemente da altre classi durante il test unitario. Dependency Injection aiuta a incollare queste classi insieme e allo stesso tempo a mantenerle indipendenti.
Cos'è esattamente l'inserimento delle dipendenze? Diamo un'occhiata a queste due parole separatamente. Qui la parte di dipendenza si traduce in un'associazione tra due classi. Ad esempio, la classe A dipende dalla classe B. Ora, diamo un'occhiata alla seconda parte, l'iniezione. Tutto ciò significa che la classe B verrà iniettata nella classe A dall'IoC.
L'inserimento delle dipendenze può avvenire nel modo in cui si passano i parametri al costruttore o dopo la costruzione utilizzando metodi setter. Poiché l'inserimento delle dipendenze è il cuore di Spring Framework, spiegheremo questo concetto in un capitolo separato con esempi pertinenti.
Programmazione orientata agli aspetti (AOP)
Uno dei componenti chiave di Spring è il Aspect Oriented Programming (AOP)struttura. Vengono chiamate le funzioni che si estendono su più punti di un'applicazionecross-cutting concernse queste preoccupazioni trasversali sono concettualmente separate dalla logica di business dell'applicazione. Esistono vari buoni esempi comuni di aspetti tra cui registrazione, transazioni dichiarative, sicurezza, memorizzazione nella cache, ecc.
L'unità chiave della modularità in OOP è la classe, mentre in AOP l'unità di modularità è l'aspetto. DI ti aiuta a disaccoppiare gli oggetti dell'applicazione l'uno dall'altro, mentre AOP ti aiuta a disaccoppiare i problemi di cross-cutting dagli oggetti che influenzano.
Il modulo AOP di Spring Framework fornisce un'implementazione della programmazione orientata agli aspetti che consente di definire intercettori di metodi e pointcuts per disaccoppiare in modo pulito il codice che implementa funzionalità che dovrebbero essere separate. Discuteremo di più sui concetti di Spring AOP in un capitolo separato.