Spring Guides (一):创建一个RESTfulspring web服务

Spring Guides (一):创建一个RESTfulspring web服务,第1张

Spring Guides (一):创建一个RESTfulspring web服务

从0基于Spring创建一个RESTFul web服务
      • 项目说明
      • 项目前提条件
      • 项目初始化
        • 利用spring initializr网站
        • 利用gitte网站直接克隆下载本文的练习仓库
      • 项目启动
      • 项目搭建
        • Greeting 类文件
        • Controller文件
      • 再次启动项目
      • 结束语

学习Spring最好的方法是什么:看官方文档,因为官方文档的信息最全,不会出现某些包过时的情况,但是官方文档很难看懂,即使看懂也不知道怎么去练习怎么办,不用怕,Spring官方都帮你想好了,
Spring Guides:https://spring.io/guides 可以说是Spring官方对新手最友好的项目教程,一个项目花费的时间只需要仅仅十几二十分钟,架子搭好了,只需要关注最重要的部分即可。
但是官方文档都是英语怎么办,不用怕,本系列文章会帮你一一捋清楚,而且会更进一步解释部分官方文档里面没有详细说明的内容。下面来一起开始吧,帮您快速进入Spring的世界!

项目说明

本项目旨在为练习人员快速熟悉并实现Restful的web服务,成果是一个API的简单接口。
项目预期效果:

访问特定路径,可以返回一个id和打招呼的内容,以及传入的参数

项目前提条件
  • 需要至少准备15分钟
  • 最好用个IDE,强烈推荐Intellij IDEA
  • JDK 1.8以上
  • Gradle 4以上或者Maven 3.2以上
项目初始化 利用spring initializr网站
  • 网址 Spring initializr 安装包
  • 去上面网站直接点击下载,注意需要选择maven或者gradle,以及自己可以取个喜欢的名字,然后会有一个zip包,然后解压,用idea打开
利用gitte网站直接克隆下载本文的练习仓库
  • gitee仓库地址

  • 进入页面后点击克隆/下载即可,可以下载zip包,在本地解压,也可以直接克隆

项目启动
  • 这一小节假设读者的前提工作已经做好,我们进入工程根目录,启动项目:
    • gradle: ./gradlew bootRun
    • IDE, 直接运行RestServiceApplication.java文件
    • maven: ./mvnw spring-boot:run

项目搭建 Greeting 类文件
  • 在src/main/java/com/example/restservice/目录下创建Greeting.java文件,用来作为返回给前端的数据结构,内容如下:建议小白自己敲一遍,加深肌肉记忆
package com.example.restservice;

public class Greeting {

	private final long id;
	private final String content;

	public Greeting(long id, String content) {
		this.id = id;
		this.content = content;
	}

	public long getId() {
		return id;
	}

	public String getContent() {
		return content;
	}
}
  • 利用在创建Greeting的时候,有个小技巧,在把属性id和content写上后,可以右键生成构造函数以及get方法,并且可以尝试用快捷键,在我司这是必备技能哦。
Controller文件
  • 在src/main/java/com/example/restservice/目录下创建GreetingController.java文件,用来处理HTTP请求,内容如下:
package com.example.restservice;

import java.util.concurrent.atomic.AtomicLong;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class GreetingController {

	private static final String template = "Hello, %s!";
	private final AtomicLong counter = new AtomicLong();

	@GetMapping("/greeting")
	public Greeting greeting(@RequestParam(value = "name", defaultValue = "World") String name) {
		return new Greeting(counter.incrementAndGet(), String.format(template, name));
	}
}
  • @RestController 由两个注解组成,点进去这个注解(mac按住command + B,其他IDE以及系统可以自行百度),可以看见由俩个注解组成:
    • @Controller ,Controller其实就是个@Component(用来被自动扫描到),只是一般把处理HTTP请求这一层加上@Controller注解,用来特殊标识
    • @ResponseBody, 用来讲Controller里面方法返回的对象,通过适当的转换器,转换为特定的格式后,写入到response对象的body区(响应体)中,通常为JSON或者XML格式
  • @GetMapping("/greeting"),用来注解方法,按上述方法点开后其实就是 @RequestMapping(method = RequestMethod.GET),用来标识这个方法是个GET方法,后面括号中的"/greeting"为路径,表示需要访问 localhost:8080/greeting才能进入这个方法
  • @RequestParam(value = "name", defaultValue = "World")表示方法接收为name的参数,默认是"World", 通过请求localhost:8080/greeting?name=yourName来进行传入
  • AtomicLong
    • 可以看到我们对声明为AtomicLong的变量counter在方法里进行获取并自增的 *** 作,为什么不用Long类型呢?
    • AtomicLong作用是对长整形进行原子 *** 作(多线程中尤为重要), 因为不是本文的重点,大家可以自行百度进行了解
再次启动项目
  • 访问http://localhost:8080/greeting?name=EDG,可以出现下图效果。

结束语
  • 好啦,本文到此结束,欢迎大家阅读,请一定要自己下载代码并且自己跟着练习一遍哦,talk is cheep, show me the code!
  • 如果您的代码运行的有问题,请下载我的代码,并切换到answer分支去对比一下吧,一定要加油哦~
  • https://gitee.com/xj18624323263/spring-guide-restful-web-service.git

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5138420.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存