¿Podría alguien explicar Spring MVC con la siguiente foto?

Spring MVC se basa en la API de Servlet de Java EE. A los fines de esta explicación, si no tiene antecedentes de Servlet API, piense en el servlet como una clase con métodos que toman la solicitud HTTP y generan una respuesta HTTP. Este es un nivel demasiado bajo para uso práctico, por lo que Spring ofrece una forma de simplificarlo y permite que el programador trabaje en términos de beans, que son el componente básico de Spring Framework.

Spring proporciona el Servlet Dispatcher que maneja las solicitudes HTTP. Dentro de la aplicación Servlet, hay un mapeo (en un archivo llamado web.xml ) que le dice al contenedor de servlet (como Apache Tomcat, por ejemplo) que ciertas rutas deben enviarse al Servlet Dispatcher.

El Servlet Dispatcher necesita saber a qué Controlador, un bean proporcionado por el programador, para enviar la solicitud. Handler Mapping, un bean proporcionado por Spring MVC, toma esta decisión.

El controlador toma la solicitud y devuelve un ModelAndView, un bean proporcionado por Spring MVC. (Tenga en cuenta que esta no es la única opción). Contiene un nombre de String de una vista y los datos del modelo que se mostrarán con la vista. View Resolver convierte este nombre de cadena en una ruta que se puede usar como View. Cuando se usa la tecnología JSP tradicional, el View Resolver especifica la ubicación del archivo y la extensión del nombre de archivo a usar.

El servlet Dispatcher luego envía la solicitud a la tecnología View. Reenvía la solicitud, luego obtiene la respuesta para enviar como una respuesta HTTP. En el caso de un JSP, el Contenedor de Servlet lo compila en un Servlet que a su vez maneja una solicitud y respuesta HTTP. El modelo se representa en la salida de la tecnología View, generalmente como HTML. Por lo tanto, el Modelo son los datos que se generan, que la Vista formatea en algo útil para el usuario.

Si está intentando saltar directamente a Spring MVC, no lo haga. Según su pregunta, parece que no tiene una comprensión rudimentaria de J2EE, específicamente, la API de Servlet. Tendrá que comprenderlos y Spring Core antes de poder entender Spring MVC

En términos generales, el objetivo de Spring es facilitarle la tarea de hacer cosas, que comúnmente se realizan en la mayoría de las aplicaciones. Lo hace al proporcionar una abstracción de nivel más alto que el proporcionado por las API comunes y oculta la esencia interna de la API. En este caso, Spring MVC proporciona una abstracción de nivel superior sobre la API de Servlet. Esto es genial para alguien que está creando una aplicación MVC

Sin embargo, hace que sea difícil de aprender, ya que debe comprender cómo funcionan las API de bajo nivel antes de poder comprender lo que hace Spring.

Tengo el presentimiento de que la razón por la que tienes problemas para entender Spring es que estás conduciendo a Spring demasiado rápido. Aprenda J2EE primero

Y sí, sé que esta es la razón por la cual las personas que odian Java odian Java: p Demasiadas cosas para aprender 😀

Spring MVC trabaja en el servlet del despachador, donde maneja las solicitudes de incmoing y luego, consultando con el controlador respectivo, luego despacha las solicitudes para asociarlas al controlador → que al finalizar devuelve el modelo y la vista para devolver la respuesta al usuario llamante

Lo mismo se explica aquí en detalle Spring MVC Framework