Diferencia entre ApplicationContext y WebApplicationContext en Spring MVC

El marco Spring MVC permite la separación de módulos, a saber, Modelo, Vista y Controlador, y maneja sin problemas la integración de la aplicación. Esto permite al desarrollador crear aplicaciones complejas que también utilizan Clases Java sencillas. El objeto modelo se puede pasar entre la vista y el controlador usando mapas. 

¿Qué es ApplicationContext?

El contenedor Spring IoC es responsable de instanciar, cablear, configurar y administrar todo el ciclo de vida de los objetos. BeanFactory y ApplicationContext representan los contenedores Spring IoC. ApplicationContext es la subinterfaz de BeanFactory. BeanFactory proporciona funcionalidades básicas y se recomienda su uso para aplicaciones ligeras como dispositivos móviles y applets. ApplicationContext proporciona funciones básicas además de funcionalidades específicas de la empresa, que son las siguientes:

  • Publicación de eventos para oyentes registrados mediante la resolución de archivos de propiedades.
  • Métodos para acceder a los componentes de la aplicación.
  • Apoya la Internacionalización.
  • Cargar recursos de archivo de forma genérica.

Debe leer – Spring – ApplicationContext

¿Qué es WebApplicationContext?

WebApplicationContext en Spring es un ApplicationContext consciente de la web, es decir, tiene información de contexto de servlet. En una sola aplicación web, puede haber varios WebApplicationContext. Eso significa que cada DispatcherServlet está asociado con un solo WebApplicationContext. El archivo de configuración de WebApplicationContext *-servlet.xml es específico para DispatcherServlet y una aplicación web puede tener más de un DispatcherServlet configurado para manejar las requests y cada DispatcherServlet tendría un archivo *-servlet.xml separado para configurar.

Debe leer: WebApplicationContext en Spring MVC

Diferencia entre ApplicationContext y WebApplicationContext en Spring MVC

Factor 1: ApplicationContext se utiliza para crear aplicaciones independientes. Pero para las aplicaciones web, tenemos que lidiar con un contenedor llamado WebApplicationContext.

A. Aplicación independiente

// Creating container objects manually
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
// Destroying container object manually
context.close();

B. Aplicación web

No necesita crear y destruir el objeto contenedor. El objeto contenedor se creará automáticamente con el inicio del servidor y se destruirá cuando detengamos el servidor. 

Factor 2: otra diferencia interesante es que tanto ApplicationContext como WebApplicationContext son los contenedores de resorte donde WebApplicationContext es el elemento secundario de la interfaz ApplicationContext.

public interface WebApplicationContext 
extends ApplicationContext 
{
  ...............
}

Después de tener una breve idea sobre el propósito y la aplicación independiente y la aplicación web en orden, para resumir, las diferencias entre ApplicationContext y WebApplicationContext, se representa en forma tabular como se muestra a continuación:

ApplicationContext 

WebApplicationContextWebApplicationContext 

ApplicationContext se utiliza para crear aplicaciones independientes. WebApplicationContext se utiliza para crear aplicaciones web.
ApplicationContext es el padre de la interfaz WebApplicationContext. WebApplicationContext es el elemento secundario de la interfaz ApplicationContext.
En el caso de ApplicationContext, tenemos que crear y destruir los objetos contenedores manualmente. Pero en el caso de WebApplicationContext, no necesitamos crear y destruir el objeto contenedor. El objeto contenedor se creará automáticamente.
Siempre hay un solo ApplicationContext en una aplicación. Puede haber varios WebApplicationContexts para cada uno de los servlets del despachador.
ApplicationContext representa los contenedores Spring IoC y es la subinterfaz de BeanFactory.  WebApplicationContext en Spring es un ApplicationContext consciente de la web, es decir, tiene información de contexto de servlet.
ApplicationContext se utiliza para inyectar todos los beans de nivel medio (servicios, DAO) que se instancian mediante la clase «ContextLoaderListener» configurada en web.xml. WebApplicationContext se utiliza para gestionar los componentes relacionados con la web, como los controladores y los solucionadores de vistas, que se configuran mediante «DispatcherServlet».

Publicación traducida automáticamente

Artículo escrito por AmiyaRanjanRout y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *