- 项目说明
- 项目前提条件
- 项目初始化
- 利用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 安装包
- 去上面网站直接点击下载,注意需要选择maven或者gradle,以及自己可以取个喜欢的名字,然后会有一个zip包,然后解压,用idea打开
-
gitee仓库地址
-
进入页面后点击克隆/下载即可,可以下载zip包,在本地解压,也可以直接克隆
- 这一小节假设读者的前提工作已经做好,我们进入工程根目录,启动项目:
- gradle: ./gradlew bootRun
- IDE, 直接运行RestServiceApplication.java文件
- maven: ./mvnw spring-boot:run
- 在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方法,并且可以尝试用快捷键,在我司这是必备技能哦。
- 在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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)