带有示例的 Spring @ResponseBody 注解
Spring Annotations允许我们通过Java程序配置依赖并实现依赖注入。这些用于提供有关程序的补充信息。它对他们注释的代码的操作没有直接影响。它不会改变编译程序的动作。 @ResponseBody 注解告诉控制器返回的对象自动序列化为 JSON 并传回 HttpResponse 对象。当您在方法上使用 @ResponseBody 注解时,Spring 会自动转换返回值并将其写入 HTTP 响应。 Controller 类中的每个方法都必须使用@ResponseBody 进行注解。
那么让我们通过一个例子来理解@ResponseBody Annotation。
执行:
Requirements:
- Eclipse (EE version)/STS IDE
- Spring JAR Files
- Tomcat Apache latest version
设置项目
Note: We are going to use Spring Tool Suite 4 IDE for this project. Please refer to this article to install STS in your local machine How to Download and Install Spring Tool Suite (Spring Tools 4 for Eclipse) IDE?
第 1 步:在您的 STS IDE 中创建一个动态 Web 项目。您可以参考这篇文章在 STS中创建动态 Web 项目:如何在 Spring Tool Suite 中创建动态 Web 项目?
第 2 步:下载 spring JARs 文件并转到src > main > webapp > WEB-INF > lib文件夹并通过这些 JAR 文件。
第 3 步:使用您的应用程序配置 tomcat 服务器。现在我们准备好了。
it is recommended to refer to article: Configuration of Apache Tomcat Server
配置 Dispatcher Servlet
Tip: Please refer to this article What is Dispatcher Servlet in Spring? and read more about Dispatcher Servlet which is a very very important concept to understand. Now we are going to configure Dispatcher Servlet with our Spring MVC application.
第 4 步:转到src > main > webapp > WEB-INF > web.xml文件, web.xml文件的完整代码如下所示:
XML
myfirst-mvc-project
index.html
index.jsp
index.htm
default.html
default.jsp
default.htm
frontcontroller-dispatcher
org.springframework.web.servlet.DispatcherServlet
1
frontcontroller-dispatcher
/student.com/*
XML
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 helloWolrd()
{
return "Hello World!";
}
}
第 5 步:现在转到src > main > webapp > WEB-INF并创建一个 XML 文件。实际上,这是一个 Spring 配置文件,如 beans.xml 文件。并且文件名必须采用以下格式:
YourServletName-servlet.xml
例如,对于这个项目,文件的名称必须是
frontcontroller-dispatcher-servlet.xml
因此,您可以创建一个 Spring 配置文件,也可以只创建一个简单的 XML 文件,在该文件中添加以下代码行。
文件:frontcontroller-dispatcher-servlet.xml
XML
创建控制器类
第 6 步:现在,让我们创建一些控制器。转到 src/main/ Java并根据您的选择创建一个新的控制器包(例如 com.student.controllers)。并在其中创建一个Java类并将该类命名为 DemoController。现在如何告诉 Spring 这是我们的控制器类。所以我们要告诉 Spring 的方法是用 @Controller 注释标记它。
@Controller
public class DemoController
{
}
Note: Spring will automatically initialize the class having a @Controller annotation and register that class with the spring container.
现在让我们在 Controller 类中创建一个简单的方法,并在方法之前使用 @ResponseBody 注释,如下所示。
// Annotation
@ResponseBody
@RequestMapping("/hello")
// Method
public String helloWolrd()
{
return "Hello World!";
}
现在让我们了解注释。所以基本上@RequestMapping(“/hello”),这一行的意思是,在 URL 中,如果有人点击 student.com/hello,那么这个特定的方法将被执行,并且它将执行在该特定方法中写入的操作。例如,对于这个项目,我们只是返回一条消息“Hello World!”我们期望这将显示在客户端浏览器中。但这件事不会发生。为了实现它,我们需要使用@ResponseBody 注释。所以@ResponseBody 注释基本上会在你的 HTTP 响应中写入这个特定的消息,这里是“Hello World!”。
文件:演示控制器。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 helloWolrd()
{
return "Hello World!";
}
}
运行 Spring MVC 控制器
第 7 步:要运行您的 Spring MVC 应用程序,请右键单击您的项目 > 运行方式 > 在服务器上运行并运行您的应用程序。之后使用以下 URL 运行您的控制器,如下图所示。图片中提到了所有其他细节。
http://localhost:8080/myfirst-mvc-project/student.com/hello