📜  Spring – REST 控制器

📅  最后修改于: 2022-05-13 01:54:19.664000             🧑  作者: Mango

Spring – REST 控制器

Spring Boot 建立在 Spring 之上,包含了 Spring 的所有特性。并且由于其快速的生产就绪环境使开发人员能够直接专注于逻辑而不是为配置和设置而苦苦挣扎,如今它正成为开发人员的最爱。 Spring Boot 是一个基于微服务的框架,在其中制作可用于生产的应用程序只需要很少的时间。在本文中,我们将讨论 Spring Boot 中的 REST 控制器是什么。 spring 中主要使用了两个控制器,controller,第二个是借助@controller@restcontroller注解的RestController。 @restcontroller 和@controller 的主要区别在于@restcontroller 结合了@controller 和@ResponseBody 注解。

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。点击提示导入更改,等待项目同步,如下图所示:

第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 服务器启动。

让我们向邮递员发出删除请求

输出:在控制台上生成

2

这个控制器。 Java文件用于处理来自客户端的所有传入请求。