Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

L'architettura di Spring

La natura modulare del framework e i principali componenti
La natura modulare del framework e i principali componenti
Link copiato negli appunti

Uno dei principali vantaggi offerti da Spring è quello di poter escludere le parti del framework non necessarie all'applicazione che si sta sviluppando, includendo esclusivamente quelle utili. Questo è possibile grazie all'architettura modulare di Spring che è composta principalmente da cinque livelli.

Figura 1. I componenti di Spring
I componenti di Spring

Core Container

Rappresenta la parte principale di Spring e sopra di esso è costruito l'intero framework. I moduli di Core e Beans sono responsabili delle funzionalità di Inversion Of Control (IoC) e Dependency Injection ed hanno come compito principale la creazione, gestione e manipolazione di oggetti di qualsiasi natura che, in Spring, vengono detti beans.

Il modulo context estende i servizi basilari del Core aggiungendo le funzionalità tipiche di un moderno framework. Tra queste troviamo JNDI, EJB, JMX, internazionalizzazione(I18N) e supporto agli eventi.

Infine il modulo Expression Language fornisce un potente linguaggio per interrogare e modificare oggetti a runtime.

Data Access/Integration

Fornisce un livello di astrazione per l'accesso ai dati mediante tecnologie eterogenee tra loro come ad esempio JDBC, Hibernate o JDO. Questo modulo tende a nascondere la complessità delle API di accesso ai dati, semplificando ed uniformando quelle che sono le problematiche legate alla gestione delle connessioni, delle transazioni e delle eccezzioni.

Notevole attenzione è stata data all'integrazione del framewrok con i principali ORM in circolazione compresi JPA, JDO, Hibernate, e iBatis. Oltre a questo il Data Access si occupa di fornire supporto per il Java Message Service e per svariate implementazioni di Object/XML Mapper come JAXB, Castor e XMLBean.

Spring AOP

Aggiunge al framework la funzionalità della programmazzione Aspect Oriented. AOP offre un nuovo modo di programmare che come vedremo in seguito porterà notevoli vantaggi in tutte quelle operazioni che sono trasversali tra più oggetti. In Spring l'utilizzo di AOP offre il meglio di sé nella gestione delle transazioni, permettendo di evitare l'utilizzo degli EJB per tale scopo.

Web

Come si intuisce dal nome, questo livello è responsabile delle caratteristiche Web del framework. Oltre alle funzionalità basilari, per la creazione di applicazioni Web, questo livello mette a disposizione un'implementazione del pattern MVC realizzando lo Spring MVC Framework (moduli Web-Servlet e Web-Portlet).

Il framework MVC è ampiamente configurabile attraverso delle Strategy, può operare sia in contesti servlet che portlet e può essere utilizzato con numerose tecnologie di view comprese JSP e Velocity.

Testing

Un'altra delle caratteristiche per il quale Spring si contraddistingue è il supporto al testing. Questo livello mette a disposizione un ambiente molto potente per il test delle componenti Spring, grazie anche alla sua integrazione con JUnit e TestNG e alla presenza di Mock objects per il testing del codice in isolamento.

Ti consigliamo anche