Contenitore Spring ApplicationContext

Il contesto dell'applicazione è il contenitore avanzato di Spring. Simile a BeanFactory, può caricare le definizioni dei fagioli, collegare i fagioli insieme ed erogare i fagioli su richiesta. Inoltre, aggiunge più funzionalità specifiche dell'azienda, come la capacità di risolvere messaggi di testo da un file delle proprietà e la possibilità di pubblicare eventi dell'applicazione su listener di eventi interessati. Questo contenitore è definito dall'interfaccia org.springframework.context.ApplicationContext .

L'ApplicationContext include tutte le funzionalità del BeanFactory , In generale si consiglia su BeanFactory. BeanFactory può ancora essere utilizzato per applicazioni leggere come dispositivi mobili o applicazioni basate su applet.

Le implementazioni di ApplicationContext più comunemente utilizzate sono:

  • FileSystemXmlApplicationContext- Questo contenitore carica le definizioni dei bean da un file XML. Qui è necessario fornire il percorso completo del file di configurazione del bean XML al costruttore.

  • ClassPathXmlApplicationContext- Questo contenitore carica le definizioni dei bean da un file XML. Qui non è necessario fornire il percorso completo del file XML ma è necessario impostare correttamente CLASSPATH perché questo contenitore apparirà come un file XML di configurazione del bean in CLASSPATH.

  • WebXmlApplicationContext - Questo contenitore carica il file XML con le definizioni di tutti i bean dall'interno di un'applicazione web.

Abbiamo già visto un esempio sul contenitore ClassPathXmlApplicationContext in Spring Hello World Example , e parleremo di più di XmlWebApplicationContext in un capitolo separato quando parleremo delle applicazioni Spring basate sul web. Vediamo quindi un esempio su FileSystemXmlApplicationContext.

Esempio

Cerchiamo di avere un IDE Eclipse funzionante e di eseguire i seguenti passaggi per creare un'applicazione Spring:

Passi Descrizione
1 Crea un progetto con un nome SpringExample e crea un pacchetto com.tutorialspoint sottosrc cartella nel progetto creato.
2 Aggiungere le librerie Spring richieste utilizzando l' opzione Aggiungi JAR esterni come spiegato nel capitolo Esempio Spring Hello World .
3 Crea classi Java HelloWorld e MainApp nel pacchetto com.tutorialspoint .
4 Crea il file di configurazione Beans Beans.xml sottosrc cartella.
5 Il passaggio finale consiste nel creare il contenuto di tutti i file Java e nel file di configurazione Bean ed eseguire l'applicazione come spiegato di seguito.

Ecco il contenuto di HelloWorld.java file -

package com.tutorialspoint;

public class HelloWorld {
   private String message;

   public void setMessage(String message){
      this.message  = message;
   }
   public void getMessage(){
      System.out.println("Your Message : " + message);
   }
}

Di seguito è riportato il contenuto del secondo file MainApp.java -

package com.tutorialspoint;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

public class MainApp {
   public static void main(String[] args) {
      ApplicationContext context = new FileSystemXmlApplicationContext
         ("C:/Users/ZARA/workspace/HelloSpring/src/Beans.xml");
      
      HelloWorld obj = (HelloWorld) context.getBean("helloWorld");
      obj.getMessage();
   }
}

Di seguito due punti importanti dovrebbero essere annotati sul programma principale:

  • Il primo passo è creare un oggetto factory in cui abbiamo utilizzato l'API del frameworkFileSystemXmlApplicationContextper creare il bean factory dopo aver caricato il file di configurazione del bean dal percorso specificato. IlFileSystemXmlApplicationContext()L'API si occupa di creare e inizializzare tutti gli oggetti es. bean menzionati nel file di configurazione del bean XML.

  • Il secondo passaggio viene utilizzato per ottenere il bean richiesto utilizzando getBean()metodo del contesto creato. Questo metodo utilizza l'ID del bean per restituire un oggetto generico, che alla fine può essere sottoposto a cast all'oggetto effettivo. Una volta che hai un oggetto, puoi usare questo oggetto per chiamare qualsiasi metodo di classe.

Di seguito è riportato il contenuto del file di configurazione del bean Beans.xml

<?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 = "helloWorld" class = "com.tutorialspoint.HelloWorld">
      <property name = "message" value = "Hello World!"/>
   </bean>

</beans>

Una volta terminata la creazione dei file sorgente e di configurazione del bean, eseguiamo l'applicazione. Se tutto va bene con la tua applicazione, stamperà il seguente messaggio:

Your Message : Hello World!