Spring – REST 控制器
Spring Boot 建立在 Spring 之上,包含了 Spring 的所有特性。并且由于其快速的生产就绪环境使开发人员能够直接专注于逻辑而不是为配置和设置而苦苦挣扎,如今它正成为开发人员的最爱。 Spring Boot 是一个基于微服务的框架,在其中制作可用于生产的应用程序只需要很少的时间。在本文中,我们将讨论 Spring Boot 中的 REST 控制器是什么。 spring 中主要使用了两个控制器,controller,第二个是借助@controller和@restcontroller注解的RestController。 @restcontroller 和@controller 的主要区别在于@restcontroller 结合了@controller 和@ResponseBody 注解。
RestController: RestController is used for making restful web services with the help of the @RestController annotation. This annotation is used at the class level and allows the class to handle the requests made by the client. Let’s understand @RestController annotation using an example. The RestController allows to handle all REST APIs such as GET, POST, Delete, PUT requests.
Spring Initializr 是一个基于 Web 的工具,我们可以使用它轻松生成 Spring Boot 项目的结构。它还为元数据模型中表达的项目提供各种不同的功能。该模型允许我们配置 JVM 支持的依赖项列表。在这里,我们将使用 spring 初始化程序创建应用程序的结构,然后使用 IDE 创建示例 GET 路由。因此,为此,按如下顺序执行以下步骤。
分步实施
第 1 步:转到 Spring Initializr
根据要求填写详细信息。对于此应用程序:
Project: Maven
Language: Java
Spring Boot: 2.2.8
Packaging: JAR
Java: 8
Dependencies: Spring Web
第 2 步:单击 Generate 将下载启动项目
第三步:解压压缩包。现在打开一个合适的 IDE,然后转到 File > New > Project from existing sources > Spring-boot-app 并选择 pom.xml。点击提示导入更改,等待项目同步,如下图所示:
Note: In the Import Project for Maven window, make sure you choose the same version of JDK which you selected while creating the project.
第4步: 转到 src > main > Java > com.gfg.Spring.boot.app,创建一个名为 Controller 的Java类,并添加注解 @RestController 和其他名为 Details 的类。
细节:
Java
public class Details {
// Creating an object of ArrayList
static ArrayList Data = new ArrayList();
int number;
String name;
Details(int number, String name)
{
// This keyword refers
// to parent instance itself
this.number = number;
this.name = name;
}
}
Java
@RestController
// Class
public class Controller {
// Constructor
Controller()
{
a.add(1);
a.add(2);
}
@GetMapping("/hello/{name}/{age}")
public void insert(@PathVariable("name") String name,
@PathVariable("age") int age)
{
// Print and display name and age
System.out.println(name);
System.out.println(age);
}
// Creating an empty ArrayList
ArrayList a = new ArrayList<>();
// Annotation
@DeleteMapping("/hello/{id}")
// Method
public void deleteById(@PathVariable("id") int id)
{
a.remove(new Integer((id)));
print();
}
// Handling post request
@PostMapping("/EnterDetails")
String insert(@RequestBody Details ob)
{
// Storing the incoming data in the list
Data.add(new Details(ob.number, ob.name));
// Iterating using foreach loop
for (Details obd : Data) {
System.out.println(obd.name + " " + ob.number);
}
return "Data Inserted";
}
// Method
void print()
{
for (int elements : a) {
System.out.print(elements);
}
}
控制器:
Java
@RestController
// Class
public class Controller {
// Constructor
Controller()
{
a.add(1);
a.add(2);
}
@GetMapping("/hello/{name}/{age}")
public void insert(@PathVariable("name") String name,
@PathVariable("age") int age)
{
// Print and display name and age
System.out.println(name);
System.out.println(age);
}
// Creating an empty ArrayList
ArrayList a = new ArrayList<>();
// Annotation
@DeleteMapping("/hello/{id}")
// Method
public void deleteById(@PathVariable("id") int id)
{
a.remove(new Integer((id)));
print();
}
// Handling post request
@PostMapping("/EnterDetails")
String insert(@RequestBody Details ob)
{
// Storing the incoming data in the list
Data.add(new Details(ob.number, ob.name));
// Iterating using foreach loop
for (Details obd : Data) {
System.out.println(obd.name + " " + ob.number);
}
return "Data Inserted";
}
// Method
void print()
{
for (int elements : a) {
System.out.print(elements);
}
}
该应用程序现在可以运行了。
第 5 步:运行 SpringBootAppApplication 类并等待 Tomcat 服务器启动。
Note: The default port of the Tomcat server is 8080 and can be changed in the application.properties file.
让我们向邮递员发出删除请求
输出:在控制台上生成
2
这个控制器。 Java文件用于处理来自客户端的所有传入请求。