JavaRush /Java 博客 /Random-ZH /春天并不可怕。控制你的休息
Павел
第 11 级

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

已在 Random-ZH 群组中发布
文章周期的内容 重用别人的作品对于任何开发人员来说都是一件神圣的事情 😌 要继续前进,您需要了解计算机网络的基础知识,这里有一系列文章。注意要点: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 request 一些解释: 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 状态。如果你对这种方法有问题,你可以google“put request java”,还没有人取消互联网)使用控制器并没有结束,前面还有很多主题......
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION