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

IoC Container

Iniziamo ad esaminare il funzionamento del nucleo centrale del framework
Iniziamo ad esaminare il funzionamento del nucleo centrale del framework
Link copiato negli appunti

Considerato il cuore di Spring, lo IoC Container fornisce un contesto altamente configurabile per la creazione e risoluzione delle dipendenze di componenti che qui vengono chiamati bean (da non confondere con i JavaBean).

A differenza di quanto avviene nei cosiddetti "heavyweight container" dove i componenti gestiti devono rispecchiare caratteristiche particolari o implementare opportune classi astratte fornite dal framework,

in Spring un bean non deve aderire a nessun tipo di contratto e può essere rappresentato da una qualunque classe Java.

Tecnicamente parlando, lo IoC Container è realizzato da due interfacce:

  • BeanFactory, che definisce le funzionalità di base per la gestione dei bean
  • ApplicationContext, che estende queste funzionalità basilari aggiungendone altre tipicamente enterprise come ad esempio la gestione degli eventi, l'internazionalizzazione e l'integrazione con AOP

Di seguito analizzeremo le funzionalità di base fornite dallo IoC Container fornite da BeanFactory, tenendo presente che tutto ciò che verrà detto è valido anche per ApplicationContext.

L'interfaccia BeanFactory rappresenta la forma più semplice di IoC Container in Spring e ha il compito di:

  • creare i bean necessari all'applicazione
  • inizializzare le loro dipendenze attraverso l'utilizzo dell'injection
  • gestirne l'intero ciclo di vita

Per svolgere questi compiti, il container si appoggia a configurazioni impostate dall'utente che, riflettendo lo scenario applicativo, specificano i bean che dovranno essere gestiti dal container, le dipendenze che intercorrono tra questi oltre alle varie configurazioni specifiche.

XmlBeanFactory

In Spring esistono diverse implementazioni di BeanFactory, la più comune delle quali è senza dubbio la XmlBeanFactory che permette di utilizzare uno o più file XML per descrivere la configurazione da utilizzare. I file di configurazione della XmlBeanFactory hanno la seguente forma:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
  <bean id="..." class="...">
    <!-- eventuali risoluzioni di dipendenze e proprietà -->
  </bean>
  <bean id="..." class="...">
    <!-- eventuali dipendenze e proprietà -->
  </bean>
  <!-- altri bean applicativi -->

Dopo l'intestazione del file XML, racchiuse tra i tag <beans>, troviamo le definizioni dei bean e, per ognuno di questi, le eventuali proprietà che ne descriveranno la struttura e il comportamento. Osserviamone alcune:

  • l'Id associato al bean per essere richiamato tramite invocazioni al container
  • Il nome della classe che implementa il bean in caso questa venga istanziata direttamente o della relativa factory che si occuperà della sua creazione
  • Risoluzione di dipendenze attraverso metodi setter o costruttori appositi
  • Proprietà comportamentali che definiscono come il bean deve essere trattato dal container (scope, ciclo di vita, etc.)

Ti consigliamo anche