使用Spring创建RESTful的Web服务
在以前的项目开发当中,大家都把前端和后端放在一起开发,通过模板引擎技术将后台的数据展示在前端页面上,常见的模板引擎技术有jsp、freemarker、velocity、Thymeleaf等。大多数后端开发人员都要在模板引擎中编写代码,不仅要懂后端技术,前端技术也要略知一二。随着这几年前端技术的发展,vue,react等非常流行,前后端分离大势所趋,前后端通过http请求交互,后端以json格式将数据返回,页面有前端渲染。后端开发人员可以更聚焦业务,不用像以前那样分出一部分精力处理前端。
在这样的大背景下,RESTful更加流行,RESTful不仅以json的格式返回数据,还可以在请求头中加入方法,来区分增删改查操作,比如:POST,GET、DELETE、PUT等。Spring框架对RESTful的设计风格有着良好的支持,今天我们就要看看使用Spring如何搭建RESTful的Web服务。
准备工作
我们需要使用jdk1.8以上,maven3.2以上,我们会使用IDEA为大家演示。
搭建RESTful的Web服务
我们打开IDEA,选择创建新项目,如图:
使用Spring创建RESTful的Web服务我们选择Spring初始化,并点击下一步:
使用Spring创建RESTful的Web服务我们这里都采用默认配置,大家可以根据自己的项目需要自行修改,然后点击下一步:
使用Spring创建RESTful的Web服务我们选择了常用的Lombok依赖,和spring提供的web依赖,我们在红框中可以看到,这个web依赖包可以做很多基于SpringMVC的web服务,点击下一步:
使用Spring创建RESTful的Web服务项目名称叫做restful-demo,然后点击完成,如图:
使用Spring创建RESTful的Web服务spring-boot初始化项目就结束了,接下来我们编写一个简单的例子。
示例
我们先创建一个vo的包,并在包中新建一个Greeting类,如下:
使用Spring创建RESTful的Web服务由于我们引入了Lombok的依赖,所以我们可以使用@Getter和@Setter来简化我们色set和get方法。
然后再创建一个controller包,并新建GreetingController类,如下:
使用Spring创建RESTful的Web服务- 在类上我们使用的注解是@RestController,它与@Controller的区别是,@RestController中加了@ResponseBody,不用为每一个方法指定@ResponseBody,这样每个方法的返回都会走Spring默认的Json格式。
- @RequestMapping表示这个类映射的访问路径是greet。
- 我们在来看方法,方法上的注解我们使用的是@GetMapping,这表示这个方法只接收Get请求,并且映射的路径是hello。RESTful的其他几种状态也有对应的注解,分别为:@PostMapping、@PutMapping、@DeleteMapping、PatchMapping。大家可以根据自己的需要使用不同的注解。
好了,我们现在启动项目,如下:
使用Spring创建RESTful的Web服务项目启动成功,端口为:8080。我们在浏览器中访问试试看:
使用Spring创建RESTful的Web服务我们的访问链接为:http://localhost:8080/greet/hello?name=Allen&age=23,页面返回了Json的格式。
大家想一想,如果我们将方法上的注解改成@PostMapping,在浏览器中访问同样的链接,还会返回结果吗?