Anotación Spring @ResponseBody con ejemplo

Spring Annotations nos permite configurar dependencias e implementar la inyección de dependencias a través de programas java. Se utilizan para proporcionar información complementaria sobre un programa. No tiene un efecto directo sobre el funcionamiento del código que anotan. No cambia la acción del programa compilado. La anotación @ResponseBody le dice a un controlador que el objeto devuelto se serializa automáticamente en JSON y se vuelve a pasar al objeto HttpResponse. Cuando usa la anotación @ResponseBody en un método, Spring convierte el valor devuelto y lo escribe en la respuesta HTTP automáticamente. Cada método en la clase Controller debe anotarse con @ResponseBody.

Spring @ResponseBody Annotation

Entonces, comprendamos la anotación @ResponseBody con un ejemplo. 

Implementación: 

Requisitos: 

Configuración del proyecto

Nota : Vamos a utilizar Spring Tool Suite 4 IDE para este proyecto. Consulte este artículo para instalar STS en su máquina local ¿Cómo descargar e instalar Spring Tool Suite (Spring Tools 4 para Eclipse) IDE? 

Paso 1: cree un proyecto web dinámico en su STS IDE. Puede consultar este artículo para crear un proyecto web dinámico en STS: ¿ Cómo crear un proyecto web dinámico en Spring Tool Suite?

Paso 2: descargue el archivo Spring JAR y vaya a la carpeta src> main> webapp> WEB-INF> lib y pase estos archivos JAR.

Paso 3: Configure el servidor tomcat con su aplicación. Ahora estamos listos para ir.

se recomienda consultar el artículo: Configuración del Servidor Apache Tomcat 

Configuración del servlet de despachador

Sugerencia: Consulte este artículo ¿Qué es Dispatcher Servlet en Spring? y lea más sobre Dispatcher Servlet, que es un concepto muy importante de entender. Ahora vamos a configurar Dispatcher Servlet con nuestra aplicación Spring MVC. 

Paso 4: vaya al archivo src> main> webapp> WEB-INF> web.xml y el código completo para el archivo web.xml se proporciona a continuación:

XML

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                             http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
   
  <display-name>myfirst-mvc-project</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.jsp</welcome-file>
    <welcome-file>default.htm</welcome-file>
  </welcome-file-list>
   
  <absolute-ordering/>
   
  <servlet>
      <!-- Provide a Servlet Name -->
    <servlet-name>frontcontroller-dispatcher</servlet-name>
    <!-- Provide a fully qualified path to the DispatcherServlet class -->
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
   
  <servlet-mapping>
      <!-- Provide a Servlet Name that you want to map -->
    <servlet-name>frontcontroller-dispatcher</servlet-name>
    <!-- Provide a url pattern -->
    <url-pattern>/student.com/*</url-pattern>
  </servlet-mapping>
   
</web-app>

Paso 5: Ahora ve a   src > main > webapp > WEB-INF  y crea un archivo XML. En realidad, este es un archivo de configuración de Spring como el archivo beans.xml. Y el nombre del archivo debe estar en este formato:

YourServletName-servlet.xml  

Por ejemplo, para este proyecto, el nombre del archivo debe ser

frontcontroller-dispatcher-servlet.xml

Entonces, puede crear un archivo de configuración de Spring o simplemente puede crear un archivo XML simple y agregar las siguientes líneas de código dentro de ese archivo.

Archivo: frontcontroller-despachador-servlet.xml

XML

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        https://www.springframework.org/schema/context/spring-context.xsd">
   
  <context:component-scan base-package="com.student.controllers"></context:component-scan>
 
</beans>

Crear clase de controlador

Paso 6: Ahora, creemos algunos controladores. Vaya a src/main/java y cree un nuevo paquete de controladores (por ejemplo, com.student.controllers) según su elección. Y dentro de eso, cree una clase Java y nombre la clase como DemoController. Ahora, cómo decirle a Spring que esta es nuestra clase de controlador. Entonces, la forma en que vamos a decirle a Spring es marcándolo con una anotación @Controller .

@Controller
public class DemoController 
{    
}

Nota: Spring inicializará automáticamente la clase que tenga una anotación @Controller y registrará esa clase con el contenedor Spring.

Ahora, creemos un método simple dentro de la clase Controller y usemos la anotación @ResponseBody antes del método, algo como esto.

// Annotation 
@ResponseBody
@RequestMapping("/hello")

// Method 
public String helloWorld() 
{
    return "Hello World!";
}

Ahora entendamos la anotación. Así que básicamente @RequestMapping(“/hello”), esta línea significa, en la URL, si alguien accede a student.com/hello, este método en particular se ejecutará y realizará la operación que está escrita dentro de ese método en particular. Por ejemplo, para este proyecto, solo devolvemos un mensaje «¡Hola mundo!» y esperamos que esto se muestre en el navegador del cliente. Pero esto no sucederá. Y para que esto suceda, necesitamos usar la anotación @ResponseBody . Entonces, la anotación @ResponseBody básicamente va a escribir este mensaje en particular, aquí «¡Hola mundo!», en su respuesta HTTP.

Archivo: DemoController.java

Java

// Java Program to Illustrate DemoController Class
 
package com.student.controllers;
 
// Importing required classes
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
 
// Annotation
@Controller
// Class
public class DemoController {
 
    // Annotation
    @ResponseBody
    @RequestMapping("/hello")
 
    // Method
    public String helloWorld()
    {
        return "Hello World!";
    }
}

Ejecución del controlador Spring MVC

Paso 7: para ejecutar su aplicación Spring MVC , haga clic con el botón derecho en su proyecto> Ejecutar como> Ejecutar en el servidor y ejecute su aplicación. Después de eso, use la siguiente URL para ejecutar su controlador como se muestra en la imagen a continuación. Todos los demás detalles se mencionan en la imagen. 

http://localhost:8080/myfirst-mvc-project/student.com/hello

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 *