用Spring Tools Suite(STS)开始一个RESTful Web Service
spring.io官方提供的例子Building a RESTful Web Service提供了用Maven、Gradle、STS构建一个RESTFul Web Service,实际上采用STS构建会更加的便捷。
目标
在浏览器中输入url:
http://localhost:8080/greeting
访问后得到结果:
{"id":1,"content":"Hello, World!"}
可以在url中带上参数:
http://localhost:8080/greeting?name=User
带上参数后的结果:
{"id":1,"content":"Hello, User!"}
开始
新建项目,通过菜单“File->New->Spring Starter Project” 新建。

在“New Spring Starter Project”对话框里自定义打上项目名,Atifact,Group,Package后,点Next。

在“New Spring Starter Project Dependencies”中,选择Spring Boot Version,把Web组件勾上,表示要构建支持RESTful的服务。Web组件中包含的内容可以在提示框中看到,可以支持RESTful和Spring MVC。
点Finish完成向导,等待STS构建完成,可以看右下角的构建进度。

待构建完成后,在STS左侧的"Package Explorer"中就能看到整个项目的结构了。
建完项目后, 首先创建一个该服务响应的json数据对应的对象,右击包“com.example.demo”,新建一个Class,取名Greeting,然后点Finish 。


Greeting.java的代码为:
package com.example.demo;
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 this.id;
}
public String getContent() {
return this.content;
}
}
按照最终访问url响应的结果,写上对应的字段已经他们的getter。
接着为了完成响应,创建对应的Controller,创建一个名为GreetingController的类,方法同上,点Finish。

GreetingController.java的代码为:
package com.example.demo; import java.util.concurrent.atomic.AtomicLong;
import org.springframework.web.bind.annotation.RequestMapping;
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(); @RequestMapping("/greeting")
public Greeting greeting(@RequestParam(value="name", required=false, defaultValue="World") String name) {
return new Greeting(counter.incrementAndGet(), String.format(template, name));
}
}
在Class定义上面,我们直接使用了@RestController注释,直接表示这是一个提供RESTful服务的Controller,这样在所有与url关联的方法上就不需要指定@ResponseBody来明确响应的数据类型,直接就会响应json数据。
在greeting方法的上面使用@RequestMapping将访问的url和处理方法进行关联,默认情况下支持GET,PUT,POST,DELETE所有的HTTP Method,如果要指定GET,可以写成@RequestMapping(method=GET)。
在greeting方法的参数中,将方法的参数和url中的参数进行了绑定,可以通过required指明参数是否必须,如果指明了true,那么要根据情况把defaultValue指定默认值,否则会报异常。
最后,以Spring Boot App方式运行。

运行后,在浏览器里访问url就能看到结果了。
url
http://localhost:8080/greeting?name=bobeut
结果:
{"id":1,"content":"Hello, bobeut!"}
End
用Spring Tools Suite(STS)开始一个RESTful Web Service的更多相关文章
- Spring Tools 4 STS没有创建Dynamic Web Project的选项 以及 Spring Tools 4 STS New 菜单没有Spring Bean Configuration File选项
Spring Tools 4 STS没有创建Dynamic Web Project的选项 STS4默认不带Dynamic Web Project插件. 解决方法:1.打开:Help 选择 Instal ...
- 译:3.消费一个RESTful Web Service
这节课我们根据官网教程学习如何去消费(调用)一个 RESTful Web Service . 原文链接 https://spring.io/guides/gs/consuming-rest/ 本指南将 ...
- Apache CXF实现Web Service(3)——Tomcat容器和不借助Spring的普通Servlet实现JAX-RS(RESTful) web service
起步 参照这一系列的另外一篇文章: Apache CXF实现Web Service(2)——不借助重量级Web容器和Spring实现一个纯的JAX-RS(RESTful) web service 首先 ...
- 在GlassFish应用服务器上创建并运行你的第一个Restful Web Service【翻译】
前言 本人一直开发Android应用,目前Android就业形势恶劣,甚至会一路下滑,因此决定学习服务器开发.采用的语言是java,IDE是Intellij,在下载Intellij的同时看到官网很多优 ...
- Spring Tools Suite (STS) 简介
首先,sts是一个定制版的Eclipse,专为Spring开发定制的,方便创建调试运行维护Spring应用. 官方页面.下载地址(3.8.1 win x64). 其次,没什么好介绍的,用一下就明白了. ...
- Java测试开发--Spring Tools Suite (STS) 简介(一)
sts是一个定制版的Eclipse,专为Spring开发定制的,方便创建调试运行维护Spring应用. 官网下载之后,可以看到一个sts-bundle,里面有三个文件夹,一个法律信息,一个tc Ser ...
- Spring开发工具Spring Tools Suite(STS)
The Spring Tool Suite is an Eclipse-based development environment that is customized for developing ...
- Spring Boot 构建一个 RESTful Web Service
1 项目目标: 构建一个 web service,接收get 请求 http://localhost:8080/greeting 响应一个json 结果: {"id":1,&qu ...
- Eclips安装STS(Spring Tool Suite (STS) for Eclipse)插件
Spring Tool Suite(sts)就是一个基于Eclipse的开发环境, 用于开发Spring应用程序.它提供了一个现成的使用环境来实现, 调试, 运行, 和部署你的Spring应用程序.包 ...
随机推荐
- [国嵌攻略][160][SPI驱动程序设计]
SPI Flash驱动 1.打开/drivers/mtd/devices/m25p80.c驱动文件.找到初始化m25p80_init函数,其中通过spi_register_driver来注册spi设备 ...
- Spark算子--groupByKey
转载请标明出处http://www.cnblogs.com/haozhengfei/p/0e90fe79f9f2e4b91a5d8e659ee68eaf.html groupByKey--Transf ...
- Oracle:对表的CREATE、ALTER、INSERT、RENAME、DELETE操作练习以及主外键约束
-创建一个student表,设定表的主键为学号CREATE TABLE student( sno VARCHAR2(10) PRIMARY KEY, --列级约束 sno VARCHAR2(20) C ...
- 一种CListCtrl自绘效果
- linux根据端口号查询来源程序
1.根据端口号查询进程 netstat -tunlp|grep port 2.根据进程查询来源程序 ps aux | grep pid 上图看出所属进程为2281 上图看出占用8083端口的程序为n ...
- Log4j源码解析--Appender接口解析
本文转自上善若水的博客,原文出处:http://www.blogjava.net/DLevin/archive/2012/07/10/382676.html.感谢作者的无私的分享. Appender负 ...
- mysql主从配置主主配置
一. 概述 MySQL从3.23.15版本以后提供数据库复制(replication)功能,利用该功能可以实现两个数据库同步.主从模式.互相备份模式的功能.本文档主要阐述了如何在linux系 ...
- java to kotlin (2) - lambda编程
前言 Kotlin Note 是我学习kotlin整理笔记向博客,文章中的例子参考了kotlin in action这本书籍,同时我也极力推荐这本书,拥有Java基础的人可以很快的就使用kotlin来 ...
- Node.js:上传文件,服务端如何获取文件上传进度
内容概述 multer是常用的Express文件上传中间件.服务端如何获取文件上传的进度,是使用的过程中,很常见的一个问题.在SF上也有同学问了类似问题<nodejs multer有没有查看文件 ...
- JDK安装及Tomcat安装
JDK安装及Tomcat安装 JDK 解压JDK到常用盘符 D为例 Tomcat安装 将tomcat.zip解压到常用的根目录下,我这里以D盘为例.这样就算安装好了! 接下来开始配置环境变量,打开环境 ...