Primavera - Definizione di fagioli
Vengono chiamati gli oggetti che costituiscono la spina dorsale dell'applicazione e che sono gestiti dal contenitore Spring IoC beans. Un bean è un oggetto che viene istanziato, assemblato e altrimenti gestito da un contenitore Spring IoC. Questi bean vengono creati con i metadati di configurazione forniti al contenitore. Ad esempio, sotto forma di definizioni XML <bean /> che hai già visto nei capitoli precedenti.
La definizione del fagiolo contiene le informazioni chiamate configuration metadata, che è necessario affinché il contenitore conosca quanto segue:
- Come creare un fagiolo
- Dettagli del ciclo di vita di Bean
- Le dipendenze di Bean
Tutti i metadati di configurazione di cui sopra si traducono in una serie delle seguenti proprietà che costituiscono ciascuna definizione di bean.
Sr.No. | Proprietà e descrizione |
---|---|
1 | class Questo attributo è obbligatorio e specifica la classe bean da utilizzare per creare il bean. |
2 | name Questo attributo specifica l'identificativo del bean in modo univoco. Nei metadati di configurazione basati su XML, si utilizzano gli attributi id e / o name per specificare gli identificatori del bean. |
3 | scope Questo attributo specifica l'ambito degli oggetti creati da una particolare definizione di bean e verrà discusso nel capitolo sugli ambiti dei bean. |
4 | constructor-arg Questo è usato per iniettare le dipendenze e sarà discusso nei capitoli successivi. |
5 | properties Questo è usato per iniettare le dipendenze e sarà discusso nei capitoli successivi. |
6 | autowiring mode Questo è usato per iniettare le dipendenze e sarà discusso nei capitoli successivi. |
7 | lazy-initialization mode Un bean inizializzato in modo pigro indica al contenitore IoC di creare un'istanza di bean quando viene richiesto per la prima volta, piuttosto che all'avvio. |
8 | initialization method Un callback da chiamare subito dopo che tutte le proprietà necessarie sul bean sono state impostate dal contenitore. Sarà discusso nel capitolo sul ciclo di vita del fagiolo. |
9 | destruction method Un callback da utilizzare quando il contenitore contenente il bean viene distrutto. Sarà discusso nel capitolo sul ciclo di vita del fagiolo. |
Metadati di configurazione Spring
Il contenitore Spring IoC è totalmente disaccoppiato dal formato in cui questi metadati di configurazione sono effettivamente scritti. Di seguito sono riportati i tre metodi importanti per fornire i metadati di configurazione allo Spring Container:
- File di configurazione basato su XML.
- Configurazione basata su annotazioni
- Configurazione basata su Java
Hai già visto come i metadati di configurazione basati su XML vengono forniti al contenitore, ma vediamo un altro esempio di file di configurazione basato su XML con definizioni di bean diverse tra cui inizializzazione pigra, metodo di inizializzazione e metodo di distruzione -
<?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">
<!-- A simple bean definition -->
<bean id = "..." class = "...">
<!-- collaborators and configuration for this bean go here -->
</bean>
<!-- A bean definition with lazy init set on -->
<bean id = "..." class = "..." lazy-init = "true">
<!-- collaborators and configuration for this bean go here -->
</bean>
<!-- A bean definition with initialization method -->
<bean id = "..." class = "..." init-method = "...">
<!-- collaborators and configuration for this bean go here -->
</bean>
<!-- A bean definition with destruction method -->
<bean id = "..." class = "..." destroy-method = "...">
<!-- collaborators and configuration for this bean go here -->
</bean>
<!-- more bean definitions go here -->
</beans>
Puoi controllare Spring Hello World Example per capire come definire, configurare e creare Spring Beans.
Discuteremo della configurazione basata sull'annotazione in un capitolo separato. Viene discusso intenzionalmente in un capitolo separato poiché vogliamo che tu cogli alcuni altri importanti concetti di Spring, prima di iniziare a programmare con Spring Dependency Injection with Annotations.