tutorial traduccion online mvc entre diferencia spring spring-mvc

traduccion - Spring-MVC: ¿Qué son un "contexto" y un "espacio de nombres"?



spring traduccion (2)

"Contexto de primavera" = un Spring ApplicationContext .

"contexto raíz", en términos de una aplicación web, significa el contexto principal que carga y usa la aplicación web. Normalmente, comenzará el contexto raíz con un ContextLoaderListener .

El contexto raíz no es realmente un "tipo" de contexto. Es solo un rol que juega un contexto. Usted tiene un contexto raíz en una aplicación web. Otros contextos no son el contexto raíz. Por lo general, son hijos del contexto raíz.

Un espacio de nombre aquí se refiere al alcance de una instancia de Spring''s DispatcherServlet. Todo lo que está diciendo es que si nombra su "prueba" de servlet en su web.xml, entonces por convención, Spring buscará un archivo llamado "test-servlet.xml" para usar como contexto del despachador. A propósito, cada contexto como este que se crea para un despachador se convierte en un elemento secundario del contexto raíz.

Editar: para responder a sus nuevas preguntas:

  1. Siga el enlace en la primera línea de mi respuesta para aprender sobre ApplicationContext. Si tiene preguntas no respondidas allí, le sugiero que publique una nueva pregunta de SO.
  2. El contexto raíz es opcional. Si no tiene el ContextLoaderListener definido, entonces simplemente no tiene un contexto raíz. Cuando utiliza un DispatcherServlet, inicia su propio ApplicationContext, y obtendrá los beans que necesita desde allí.
  3. No sé de ninguno en mi cabeza. Supongo que si hubiera una necesidad de configuraciones drásticamente diferentes entre algunos de los recursos de URL en su aplicación, eso podría llevarlo a hacerlo.
  4. Sí. Para expresarlo en los términos correctos, el contexto raíz es el contexto principal de cualquier contexto iniciado para un DispatcherServlet. Los frijoles en un contexto principal son accesibles a través y por el contexto del niño, pero lo contrario no es cierto.

Desde XmlWebApplicationContext javadoc:

De forma predeterminada, la configuración se tomará de "/WEB-INF/applicationContext.xml" para el contexto raíz y "/WEB-INF/test-servlet.xml" para un contexto con el espacio de nombres "test-servlet" (como para una instancia de DispatcherServlet con el servlet-name "prueba").

¿Qué significa un contexto de primavera?

¿Cuál es el contexto raíz? ¿Qué otros tipos de contexto de primavera hay?

¿Qué es un espacio de nombres?

ACTUALIZAR:

Algunas preguntas de seguimiento:

  1. ¿Qué es un Spring ApplicationContext? ¿Se trata de una "cosa" que contiene los beans que están definidos en un archivo XML de configuración?

  2. Al observar el código de ContextLoaderListener, parece que carga los datos definidos en los archivos XML de configuración. Pero mi aplicación web Spring funciona sin definir este oyente o cualquier otro oyente. ¿Como puede ser?

  3. ¿En qué escenarios tendría sentido tener más de una instancia de Spring''s DispatcherServlet?

  4. ¿El contexto raíz (datos de applicationContext.xml) es aplicable a cada instancia de DispatcherServlet, mientras que otros contextos (por ejemplo, datos de test-servlet.xml) solo se aplican al DispatcherServlet (es decir, prueba) relevante?


En una aplicación web, la arquitectura generalmente se divide en capas como la popular estructura MVC. Entonces, una aplicación web comprende básicamente una capa que maneja las solicitudes del cliente, es decir, HTTPRequests y una capa que da servicio a esas solicitudes.

Para resumir: clases que están destinadas a manejar las solicitudes Http, es decir, los controladores que están asignados a urls vienen bajo el test-servlet.xml. Esto se denomina WebapplicationContext y contiene solo los beans que se requieren principalmente para manejar las solicitudes de los clientes.

Ahora la siguiente parte es la capa Servicio / Dao que forma parte de su lógica comercial. Los beans que realizan dicha lógica se cargan en el objeto ApplicationContext.

Ahora puede preguntar por qué han separado estas cosas en archivos o dos objetos diferentes.

Es porque, una aplicación tiene la misma lógica de negocio que puede ser utilizada por múltiples clientes que trabajan en diferentes protocolos. Puede usar las mismas capas de servicio para manejar llamadas RMI y HTTP. Entonces Spring creó un contexto principal que se inició como ApplicationContext. Y luego, si su aplicación maneja las solicitudes web, puede crear un servlet dispathcher que tenga su propio Webapplicationcontext e inicializado como elemento secundario del contexto principal. Por lo tanto, todos los beans parentales se pueden referenciar en el elemento secundario y pueden superponerse, pero no viceversa