Un Spring MVC es un framework Java que se utiliza para construir aplicaciones web. Sigue el patrón de Diseño Modelo-Vista-Controlador. Implementa todas las características básicas de un marco de resorte central como inversión de Control, inyección de dependencias.

Un Spring MVC proporciona una solución elegante para usar MVC en spring framework con la ayuda de DispatcherServlet. Aquí, DispatcherServlet es una clase que recibe la solicitud entrante y la asigna al recurso correcto, como controladores, modelos y vistas.,

Spring Web Model-View-Controller

  • Model-un modelo contiene los datos de la aplicación. Un dato puede ser un único objeto o una colección de objetos.
  • Controller-un controlador contiene la lógica de negocio de una aplicación. Aquí, la anotación @ Controller se usa para marcar la clase como el controlador.
  • vista-una vista representa la información proporcionada en un formato particular. Generalmente, JSP + JSTL se utiliza para crear una página de vista. Aunque spring también soporta otras tecnologías de vista como Apache Velocity, Thymeleaf y FreeMarker.,
  • Front Controller-en Spring Web MVC, la clase DispatcherServlet funciona como el controlador frontal. Es responsable de administrar el flujo de la aplicación Spring MVC.

entendiendo el flujo de Spring Web MVC

  • Como se muestra en la figura, toda la solicitud entrante es interceptada por el DispatcherServlet que funciona como controlador frontal.
  • El DispatcherServlet obtiene una entrada de asignación de controlador del archivo XML y reenvía la solicitud al controlador.
  • El controlador devuelve un objeto de ModelAndView.,
  • El DispatcherServlet comprueba la entrada del solucionador de vista en el archivo XML e invoca el componente de vista especificado.

ventajas del Spring MVC Framework

veamos algunas de las ventajas del Spring MVC Framework:-

  • roles separados – el Spring MVC separa cada rol, donde se encuentra el objeto Modelo, Controlador, objeto comando, resolver vista, DispatcherServlet, validador, etc. puede ser cumplido por un objeto especializado.
  • ligero: utiliza un contenedor servlet ligero para desarrollar e implementar su aplicación.,
  • configuración potente: proporciona una configuración robusta tanto para las clases de framework como para las de aplicaciones que incluye referencias fáciles a todos los contextos, como desde controladores web hasta objetos de negocio y validadores.
  • Desarrollo rápido-El Spring MVC facilita un desarrollo rápido y paralelo.
  • Código de negocio reutilizable: en lugar de crear nuevos objetos, nos permite usar los objetos de negocio existentes.
  • Fácil de probar – en primavera, generalmente creamos clases JavaBeans que le permiten inyectar datos de prueba utilizando los métodos setter.,
  • asignación Flexible-proporciona las anotaciones específicas que redirigen fácilmente la página.

ejemplo de Spring Web MVC Framework

veamos el ejemplo simple de un Spring Web MVC framework. Los pasos son los siguientes:

  • cargar los archivos spring jar o añadir dependencias en el caso de Maven
  • Crear la clase controller
  • Proporcionar la entrada de controller en la web.,archivo xml
  • Definir el bean en el archivo XML separado
  • mostrar el mensaje en la página JSP
  • iniciar el servidor y desplegar el proyecto

estructura de directorios de Spring MVC

estructura de directorios de Spring MVC utilizando Maven

archivos JAR requeridos o dependencia Maven

para ejecutar este ejemplo, debe cargar:

  • archivos jar de Spring Core
  • archivos jar de Spring Web
  • archivos JSP + JSTL (si está utilizando cualquier otra tecnología de vista, cargue los archivos jar correspondientes).,

enlace de descarga: descargue todos los archivos jar para spring, incluidos JSP y JSTL.

si está utilizando Maven, no necesita agregar archivos jar. Ahora, necesita agregar la dependencia de maven al pom.archivo xml.

proporcionar información y configuración del proyecto en el pom.archivo xml.

pom.xml

crear la clase controller

para crear la clase controller, estamos utilizando dos anotaciones @Controller y @RequestMapping.

la anotación @ Controller marca esta clase como Controller.,

la anotación @Requestmapping se usa para asignar la clase con el nombre de URL especificado.

HelloController.java

proporciona la entrada del controlador en la web.archivo xml

en este archivo xml, estamos especificando la clase Servlet DispatcherServlet que actúa como controlador frontal en Spring Web MVC. Toda la solicitud entrante para el archivo html se enviará al DispatcherServlet.

web.xml

definir el bean en el archivo xml

Este es el archivo de configuración importante donde necesitamos especificar los componentes de la vista.,

el elemento context:component-scan define el paquete base donde DispatcherServlet buscará la clase controller.

Este archivo xml debe estar ubicado dentro del directorio WEB-INF.

spring-servlet.xml

Mostrar el mensaje en la página JSP

Esta es la sencilla página JSP, mostrando el mensaje devuelto por el Controlador.

índice.jsp