REST應(yīng)用程序遵循REST體系結(jié)構(gòu)方法。我們使用REST應(yīng)用程序來開發(fā)和設(shè)計網(wǎng)絡(luò)應(yīng)用程序。它生成對數(shù)據(jù)執(zhí)行CRUD操作的HTTP請求。通常,它以JSON或 XML 格式返回數(shù)據(jù)。
在下面的示例中,我們將創(chuàng)建一個REST應(yīng)用程序。在此應(yīng)用程序中,我們創(chuàng)建了一個產(chǎn)品列表并返回相同的列表。它以 JSON 格式返回數(shù)據(jù)。
讓我們在RSET應(yīng)用程序中實現(xiàn)它并了解REST方法通過執(zhí)行以下步驟。
步驟1: 打開 Spring Initializr https://start.spring.io/。
步驟2: 選擇 Spring Boot版本 2.3.0.M2 。
步驟3: 提供 組名稱。我們提供了組名 com.nhooo 。
步驟4: 提供 工件。我們提供了 Artifact spring-boot-rest-example 示例。
步驟5: 添加 Spring Web 依賴項。
步驟6: 單擊"生成"按鈕。當(dāng)我們單擊 Generate (生成)按鈕時,它將與應(yīng)用程序相關(guān)的所有規(guī)范包裝到 Jar 文件中,并將其下載到本地系統(tǒng)。
步驟7: 提取 jar文件。
步驟8: 復(fù)制文件夾并將其粘貼到STS工作區(qū)中。
步驟9: 導(dǎo)入項目。
文件->導(dǎo)入->現(xiàn)有Maven項目->下一步->瀏覽- >選擇文件夾spring- spring-boot-rest-example->選擇文件夾->完成
導(dǎo)入項目需要時間。成功導(dǎo)入項目后,我們可以在IDE的 Package Explorer 部分中看到它。
步驟10: 創(chuàng)建一個 模型包 com.nhooo 中的類。我們創(chuàng)建了一個名為 產(chǎn)品的類。在此類中,請執(zhí)行以下操作:
創(chuàng)建五個變量id,pname,batchno,price和noofproduct。 創(chuàng)建默認(rèn)的構(gòu)造函數(shù)。 使用字段生成構(gòu)造函數(shù)。
右鍵單擊文件->源->使用字段生成構(gòu)造函數(shù)->全選->生成 生成字母和setter。
右鍵單擊文件->源->生成Getter和Setters->全選->生成
完成所有步驟后,類如下所示。
Product.java
package com.nhooo; public class Product { private int id; private String pname; private String batchno; private double price; private int noofproduct; //默認(rèn)構(gòu)造函數(shù) public Product() { } //使用字段的構(gòu)造函數(shù) public Product(int id, String pname, String batchno, double price, int noofproduct) { super(); this.id = id; this.pname = pname; this.batchno = batchno; this.price = price; this.noofproduct = noofproduct; } //getter和setter public int getId() { return id; } public void setId(int id) { this.id = id; } public String getPname() { return pname; } public void setPname(String pname) { this.pname = pname; } public String getBatchno() { return batchno; } public void setBatchno(String batchno) { this.batchno = batchno; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public int getNoofproduct() { return noofproduct; } public void setNoofproduct(int noofproduct) { this.noofproduct = noofproduct; } }
現(xiàn)在,我們需要創(chuàng)建一個控制器。
步驟11: 在 com.nhooo 包中,創(chuàng)建一個Controller。我們創(chuàng)建了一個名稱為 ProductController 的控制器。
使用注解 @RestController 注解類。 我們已自動連接 IProductService 接口。我們將在下一步中創(chuàng)建它。 我們已經(jīng)使用注解 @GetMapping 創(chuàng)建了一個映射/產(chǎn)品。 我們已將方法 getProduct()映射到/product 。該方法返回產(chǎn)品列表。
ProductController.java
package com.nhooo; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class ProductController { @Autowired private IProductService productService; //將getProduct()方法映射到/product @GetMapping(value = "/product") public List<Product> getProduct() { //查找所有產(chǎn)品 List<Product> products = productService.findAll(); //返回產(chǎn)品列表 return products; } }
步驟12: 在包 com.nhooo 中創(chuàng)建一個名稱為 IProductService 的接口,并定義 findAll() 方法,該方法返回產(chǎn)品列表。
IProductService.java
package com.nhooo; import java.util.List; public interface IProductService { List<Product> findAll(); }
步驟13: 創(chuàng)建一個 Service 類。我們在包 com.nhooo 中創(chuàng)建了一個名為 ProductService 的服務(wù)類。
使用注解 @Service 注解類,并實現(xiàn) IProductService 接口。 在此類中,使用注解 @Override 覆蓋 findAll()方法。 ProductService類的findAll()方法將覆蓋 IProductService 接口的findAll()方法。 創(chuàng)建 ArrayList 的對象。 添加陣列列表中的產(chǎn)品。 返回產(chǎn)品的列表。
ProductService.java
package com.nhooo; import java.util.ArrayList; import java.util.List; import org.springframework.stereotype.Service; @Service public class ProductService implements IProductService { @Override public List<Product> findAll() { //創(chuàng)建一個ArrayList對象 ArrayList<Product> products = new ArrayList<Product>(); //將產(chǎn)品添加到列表中 products.add(new Product(100, "Mobile", "CLK98123", 9000.00, 6)); products.add(new Product(101, "Smart TV", "LGST09167", 60000.00, 3)); products.add(new Product(102, "Washing Machine", "38753BK9", 9000.00, 7)); products.add(new Product(103, "Laptop", "LHP29OCP", 24000.00, 1)); products.add(new Product(104, "Air Conditioner", "ACLG66721", 30000.00, 5)); products.add(new Product(105, "Refrigerator ", "12WP9087", 10000.00, 4)); //returns a list of product return products; } }
步驟14: 在 static 文件夾(src/main/resources/static)中,創(chuàng)建一個HTML文件。我們已經(jīng)創(chuàng)建了一個名為 index 的 HTML 文件。在此文件中,我們創(chuàng)建了 獲取所有產(chǎn)品的鏈接。
index.html
<!DOCTYPE html> <html> <head> <title>Home page</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <p> <a href="product">Get all Products</a> </p> </body> </html>
現(xiàn)在,我們已經(jīng)創(chuàng)建了所有文件和文件夾。創(chuàng)建所有文件后,項目目錄看起來像是在愚弄:
讓我們運行該應(yīng)用程序。
步驟15: 打開 SpringBootRestExampleApplication.java 文件并以Java 應(yīng)用程序。默認(rèn)情況下,它運行在端口 8080 上。
SpringBootRestExampleApplication.java
package com.nhooo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SpringBootRestExampleApplication { public static void main(String[] args) { SpringApplication.run(SpringBootRestExampleApplication.class, args); } }
當(dāng)應(yīng)用程序成功運行時,它將顯示消息,如下所示
步驟16: 打開瀏覽器并調(diào)用 URL http://localhost:8080/index.html。它顯示了 獲取所有產(chǎn)品的鏈接,如下圖所示。
單擊鏈接 獲取所有產(chǎn)品。它以 JSON 格式返回產(chǎn)品列表,并且URL更改為http://localhost:8080/product。