JavaRush /Java Blog /Random-TW /春天並不可怕。控制你的休息
Павел
等級 11

春天並不可怕。控制你的休息

在 Random-TW 群組發布
文章週期的內容 重用別人的作品對於任何開發人員來說都是一件神聖的事情 😌 要繼續前進,您需要了解電腦網路的基礎知識,這裡有一系列文章。注意要點:HTTP 是如何運作的,什麼是 GET、POST、PUT,回應狀態,MVC,單獨閱讀 JSON 和序列化。使用 servlet 實作建議的範例將很有用,這將幫助您全心全意地熱愛 spring-boot。本系列中的範例 spring-boot 應用程式非常簡單,但它將幫助您理解 MVC 的本質。下面將有一個更有趣的項目的連結。若要熟悉 REST 及其在 Spring 中的使用,請閱讀這三篇文章在第一篇文章中,您將了解什麼是 REST。 第二篇文章講的是要求和回應,請務必閱讀並注意菲德爾同志的評論。 第三篇文章將提供一個在Spring中實現的實際範例,創建應用程式的方法沒有太大不同(查看和比較很有用),實現它。請注意他們談論HttpStatus、ResponseEntity <?> 的地方(如果<?> 令人困惑,那麼請閱讀第13 章。《Java. 初學者指南》中的概括,Herbert Shildt),在同一篇文章中閱讀有關POSTMAN的內容(另外關於它的簡短影片)安裝 POSTMAN,您不需要所有功能,了解如何建立各種查詢。範例中有三元運算符,如果忘記了請刷新一下。注意範例文章是如何使用@Autowired實現bean注入的
@RestController
public class ClientController {

   private final ClientService clientService;

   @Autowired
   public ClientController(ClientService clientService) {
       this.clientService = clientService;
   }
}
您應該知道,從 Spring 4.3 開始,如果類別只有一個建構函數,則可以省略 @Autowired 註解。框架本身會發現需要在建構函式中實作 bean。您可以在此來源中閱讀更多內容。而如果你細心的話,那麼你應該對服務包的結構有一個疑問,即:為什麼會有一個接口 ClientService公共類 ClientServiceImpl ——這是正確的做法,稍後我們會講為什麼需要它,我們會使用它。這就是文章的全部內容。在閱讀之前,我們先來寫一下。正如他們所說:“沒有密碼就沒有一天!” 首先,我們建立一個簡單的 GET 請求。上次我們寫了一個蔬菜炒作的應用程序, git clone https://FromJava@bitbucket.org/FromJava/speculation.git git clone git@bitbucket.org:FromJava/speculation.git 打開應用程序,並在包中ru. java.rush 我們將建立一個控制器套件(來自 MVC 模式的控制器將位於此處)。建立一個類別公共類別ProductController
@RestController
@RequestMapping("/speculation")
public class ProductController {

}
@RestController 註解向 Spring 表示這是一個休息控制器。@RequestMapping - 所有控制器方法都會接收帶有 URI 的請求,該 URI 以註釋括號(“/speculation”)中指定的字串開頭。我們在類別中編寫如下方法
@GetMapping("/simple")
public String simple(){
    return "Легкий GET requestик";
}
我們啟動項目,在瀏覽器中輸入:http://localhost:8080/speculation/simple 我們收到答案: Easy GET 請求 一些解釋: 1. 我們建立了一個類別,將 @RestController 標記為控制器,表示它的路徑@RequestMapping ("/推測") – 此註解是可選的;沒有它,路徑將以「/」開頭。2. 我們創建了一個方法,執行時返回一個字串(Light GET 請求),用 @GetMapping 註解標記它(該方法專門用於 GET 請求)並指示該方法的路徑(“/simple”) 3. 我們在8080 連接埠啟動專案(伺服器),並向位址發出GET 要求:server/controller/method (http://localhost:8080/speculation/simple) 4. public String simple(){ return “Easy GET requester”方法適用於此請求;} 5. 方法結果以字串「Easy GET request」的形式傳回瀏覽器。嗯,這是一個開始!最精彩的文章等著您。掌握上面提出的材料需要一天以上的時間,沒有必要著急,這個主題非常重要,需要理解,「把大象分成幾個部分」。 對於訓練(掌握材料後): 完成推測應用控制器。建立方法: 1)透過id搜尋產品 使用 productService.findById()方法; 輸出範例
{
        "id": 1,
        "name": "Картофель",
        "purchasePrice": 20,
        "packaging": null,
        "salePrice": null
 }
實現剩餘的控制器方法後,思考:“為什麼最後兩個字段為空?需要做什麼才能讓那裡有一些值?” 2)查看店面所有商品:若要搜尋所有商品,請使用productService.findAll()方法; 若要填寫包裝和標記字段,請使用 productService.pack();產品服務.makeMoney(); 輸出應包含列出產品的 JSON 數組,例如:
[
    {
        "id": 1,
        "name": "Картофель",
        "purchasePrice": 20,
        "packaging": "Упаковано в лучшем виде",
        "salePrice": 100
    },
    {
        "id": 2,
        "name": "Морковь",
        "purchasePrice": 14,
        "packaging": "Упаковано в лучшем виде",
        "salePrice": 70
    }
]
3)在資料庫中新增產品(新增產品:白菜和批發採購價)使用: productService.save(); 此方法應傳回對應的 Http 狀態。4)透過id刪除產品 為此,首先在ProductService中實作一個包含productRepository.deleteById()的方法 ; 然後,在控制器中使用它。控制器方法必須傳回適當的 Http 狀態。5)按id更改產品(更改產品的批發價和產品名稱)這個操作會比前面的複雜一些。首先我們要透過id找到我們想要更改的產品使用 productService.findById(); 然後,在找到的產品(物件)中,將欄位值替換為 Put 請求正文中接收的物件欄位值(json_object)。可以這樣做:
найденный_товар = productService.findById(id);
найденный_товар.setName(an object_json.getName);
найденный_товар.setPurchasePrice(an object_json.getPurchasePrice);
此後,必須儲存更改的產品 productService.save(found_product); 此方法應傳回對應的 Http 狀態。如果你對這種方法有問題,你可以穀歌“put request java”,還沒有人取消互聯網)使用控制器並沒有結束,前面還有很多主題...
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION