Contenedor Spring ApplicationContext

El contexto de la aplicación es el contenedor avanzado de Spring. De forma similar a BeanFactory, puede cargar definiciones de frijoles, conectar frijoles juntos y dispensar frijoles a pedido. Además, agrega una funcionalidad más específica de la empresa, como la capacidad de resolver mensajes de texto desde un archivo de propiedades y la capacidad de publicar eventos de aplicaciones para los oyentes de eventos interesados. Este contenedor está definido por la interfaz org.springframework.context.ApplicationContext .

El Application Context incluye toda la funcionalidad de la BeanFactory , en general se recomienda sobre BeanFactory. BeanFactory aún se puede utilizar para aplicaciones ligeras como dispositivos móviles o aplicaciones basadas en subprogramas.

Las implementaciones de ApplicationContext más utilizadas son:

  • FileSystemXmlApplicationContext- Este contenedor carga las definiciones de los beans desde un archivo XML. Aquí debe proporcionar la ruta completa del archivo de configuración del bean XML al constructor.

  • ClassPathXmlApplicationContext- Este contenedor carga las definiciones de los beans desde un archivo XML. Aquí no es necesario que proporcione la ruta completa del archivo XML, pero debe configurar CLASSPATH correctamente porque este contenedor se verá como un archivo XML de configuración de bean en CLASSPATH.

  • WebXmlApplicationContext - Este contenedor carga el archivo XML con definiciones de todos los beans desde una aplicación web.

Ya hemos visto un ejemplo en el contenedor ClassPathXmlApplicationContext en Spring Hello World Example , y hablaremos más sobre XmlWebApplicationContext en un capítulo separado cuando analicemos las aplicaciones Spring basadas en web. Veamos un ejemplo en FileSystemXmlApplicationContext.

Ejemplo

Tengamos un IDE de Eclipse en funcionamiento y sigamos los siguientes pasos para crear una aplicación Spring:

Pasos Descripción
1 Cree un proyecto con un nombre SpringExample y cree un paquete com.tutorialspoint bajo elsrc carpeta en el proyecto creado.
2 Agregue las bibliotecas Spring requeridas usando la opción Agregar JAR externos como se explica en el capítulo Ejemplo de Spring Hello World .
3 Cree clases Java HelloWorld y MainApp en el paquete com.tutorialspoint .
4 Cree el archivo de configuración de Beans Beans.xml bajo elsrc carpeta.
5 El paso final es crear el contenido de todos los archivos Java y el archivo de configuración de Bean y ejecutar la aplicación como se explica a continuación.

Aquí está el contenido de HelloWorld.java archivo -

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);
   }
}

A continuación se muestra el contenido del segundo archivo 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();
   }
}

Se deben tener en cuenta los siguientes dos puntos importantes sobre el programa principal:

  • El primer paso es crear un objeto de fábrica donde usamos la API de marcoFileSystemXmlApplicationContextpara crear el bean de fábrica después de cargar el archivo de configuración del bean desde la ruta dada. losFileSystemXmlApplicationContext()API se encarga de crear e inicializar todos los objetos, es decir. beans mencionados en el archivo de configuración de beans XML.

  • El segundo paso se usa para obtener el bean requerido usando getBean()método del contexto creado. Este método utiliza el ID de bean para devolver un objeto genérico, que finalmente se puede convertir en el objeto real. Una vez que tenga un objeto, puede usar este objeto para llamar a cualquier método de clase.

A continuación se muestra el contenido del archivo de configuración 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 vez que haya terminado de crear los archivos de configuración de fuente y bean, ejecutemos la aplicación. Si todo está bien con su aplicación, imprimirá el siguiente mensaje:

Your Message : Hello World!