English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Introducción simple de anotaciones de Spring

Componentes centrales de SpringMVC

DispatcherServlet—–> Controlador, entrada de solicitudes
HanderMapping———> Controlador, distribución de solicitudes
Controller————> Controlador, flujo de procesamiento de solicitudes
ModelAndView———-> Modelo, encapsula los resultados del procesamiento de negocios y la vista
ViewResolver———-> Vista, procesador de vista

Flujo de procesamiento

El navegador envía una solicitud a Spring, que se entrega al controlador de front-end DispatcherServlet para su procesamiento.

El controlador encuentra el componente Controlador correspondiente a través de HanderMapping para procesar la solicitud.

Ejecuta el método acordado del componente Controlador para procesar la solicitud, en la llamada al componente de modelo se completa el procesamiento de negocios, el método acordado puede devolver un objeto ModelAndView, que encapsula los datos de resultado del procesamiento de negocios y el nombre de la vista.

Después de que el controlador recibe ModelAndView, llama al componente ViewResolver para localizar la vista (JSP) y transmitir información, generando el resultado de la interfaz de respuesta.

La configuración de comentarios tiene muchas ventajas en comparación con la configuración XML:

Puede utilizar plenamente el mecanismo de reflexión de Java para obtener información de la estructura de la clase, esta información puede reducir efectivamente el trabajo de configuración. Por ejemplo, al configurar el mapeo ORM con comentarios JPA, no es necesario especificar el nombre y el tipo de las propiedades del PO, si los campos de la tabla de relación y los nombres y tipos de las propiedades del PO son consistentes, incluso no es necesario escribir información de mapeo de propiedades, ya que toda esta información se puede obtener a través del mecanismo de reflexión de Java.

Los comentarios y el código Java se encuentran en un archivo, mientras que la configuración XML utiliza un archivo de configuración independiente. La mayoría de la información de configuración no se ajusta después de que el desarrollo del programa se completa. Si se colocan los comentarios y el código Java juntos, ayuda a aumentar la cohesión del programa. Mientras que el uso de un archivo de configuración XML independiente, los programadores a menudo necesitan cambiar entre el archivo del programa y el archivo de configuración mientras escriben una función, esta incoherencia en el pensamiento reduce la eficiencia del desarrollo.

Componente Controlador

El componente Controlador se encarga de ejecutar el procesamiento específico de negocios, al escribirlo es necesario implementar el interfaz Controlador y los métodos acordados.

Componente ModelAndView

El componente Controlador devuelve un objeto ModelAndView después de la convención, este objeto encapsula los datos del modelo de procesamiento de negocios y la información de la vista.

El constructor ModelAndView es el siguiente:

-ModelAndView(String viewName)

-ModelAndView(String viewName, Map modelo)

Donde viewName es el nombre de la página JSP, los datos del modelo se almacenan en los atributos de la solicitud.

Componente HanderMapping

A través del componente HanderMapping, el controlador DispatcherServlet puede mapear solicitudes HTTP a componentes Controlador.

-SimpleUserHandlerMapping mantiene una relación de mapeo (map) entre solicitudes HTTP y Controladores, según la relación de lista, se llama al Controlador.

SimpleUserHandlerMapping se utiliza

<bean class="">
 <property name="mappings">
  <props>
   <prop key="/login.form">loginController</prop>
   <props >
  </prop key="/hello.form">helloController</prop>
 </property>
</bean>
<bean id="helloController" class="org.test.HelloController">/>

La etiqueta SimpleUserHandlerMapping de arriba, helloController, coincide con el componente bean con id helloController de abajo.

RequestMappingHandlerMapping
ResquestMappingHandlerAdapter

Se utiliza la anotación @RequestMapping en la clase y método Controller para especificar la solicitud HTTP correspondiente del cliente.

Componente ViewResolver

Todos los componentes Controller retornan una instancia ModelAndView, que encapsula el nombre de la vista. Las vistas en Spring se identifican por nombre, y el resolver de vistas ViewResolver las resuelve por nombre.

InternalResourceViewResolver es el paquete de Servlet y JSP, ejemplo de uso:

<bean id="jspViewResolver" class="">
 <property name="prefix" value="/WEB-INF/jsp/"/>
 <property name="suffix" value=".jsp"/>
</bean>

Por ejemplo: el nombre de la vista hello se puede mapear a/WEB-INF/hello.jsp

Anotación Controller

Generalmente utilizamos la anotación @Controller para declarar el componente Controller, lo que lo hace más flexible, permitiendo no implementar la interfaz Controller como en el ejemplo anterior.

@Controller
public class HelloController{
 public String execute(){
  return "Hello";
 }
}

Para utilizar la anotación mencionada anteriormente, se debe cumplir con la condición previa de activar la exploración de anotaciones:

<context:component-scan base-package="org.test.controller">

base-El paquete contiene la ubicación del componente Controller.

ResquestMapping anotación

ResquestMapping indica que esta clase o método corresponde a qué solicitud.

@Controller
@ResquestMapping("/test1")
public class HelloController{
 @ResquestMapping("/hello.form")
 public String helloExecute(){
  return "Hello";
 }
}

Si es necesario usar RequestMapping,则需要在使用spring的XML配置文件中定义RequestMappingHandlerMapping(类定义前)和RequestMappingAdapter(方法定义前)两个bean组件,例如(sping3.1La versión necesita ser definida):

<bean class=".......RequestMappingMapping"/>
<bean class=".......RequestMappingAdapter"/>

spring3.2La versión no necesita ser definida

<mvc:annotation-driven/>

Resumen

Esto es todo sobre la introducción simple de las anotaciones de Spring en este artículo, espero que sea útil para todos. Los amigos interesados pueden continuar consultando otros temas relacionados en este sitio, y si hay deficiencias, por favor déjenos un mensaje para señalarlas. Gracias a todos por su apoyo a este sitio!

Declaración: Este artículo se ha redactado en línea, pertenece al propietario original, el contenido se ha contribuido y subido de manera autónoma por los usuarios de Internet, este sitio web no posee los derechos de propiedad, no se ha procesado editorialmente y no asume la responsabilidad de las responsabilidades legales relacionadas. Si encuentra contenido sospechoso de infracción de derechos de autor, por favor envíe un correo electrónico a: notice#w proporcionando evidencia relevante.3Declaración: El contenido de este artículo se ha obtenido de la red, pertenece al propietario original, el contenido se ha subido de manera autónoma por los usuarios de Internet, este sitio web no posee los derechos de propiedad, no se ha procesado editorialmente y no asume la responsabilidad de las responsabilidades legales relacionadas. Si encuentra contenido sospechoso de infracción de derechos de autor, por favor envíe un correo electrónico a: notice#w proporcionando evidencia relevante. Una vez que se verifique, este sitio eliminará inmediatamente el contenido sospechoso de infracción.

Te gustará también