spring.io官方提供的例子Building a RESTful Web Service提供了用Maven、Gradle、STS构建一个RESTFul Web Service,实际上采用STS构建会更加的便捷。

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的更多相关文章

  1. 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 ...

  2. 译:3.消费一个RESTful Web Service

    这节课我们根据官网教程学习如何去消费(调用)一个 RESTful Web Service . 原文链接 https://spring.io/guides/gs/consuming-rest/ 本指南将 ...

  3. 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 首先 ...

  4. 在GlassFish应用服务器上创建并运行你的第一个Restful Web Service【翻译】

    前言 本人一直开发Android应用,目前Android就业形势恶劣,甚至会一路下滑,因此决定学习服务器开发.采用的语言是java,IDE是Intellij,在下载Intellij的同时看到官网很多优 ...

  5. Spring Tools Suite (STS) 简介

    首先,sts是一个定制版的Eclipse,专为Spring开发定制的,方便创建调试运行维护Spring应用. 官方页面.下载地址(3.8.1 win x64). 其次,没什么好介绍的,用一下就明白了. ...

  6. Java测试开发--Spring Tools Suite (STS) 简介(一)

    sts是一个定制版的Eclipse,专为Spring开发定制的,方便创建调试运行维护Spring应用. 官网下载之后,可以看到一个sts-bundle,里面有三个文件夹,一个法律信息,一个tc Ser ...

  7. Spring开发工具Spring Tools Suite(STS)

    The Spring Tool Suite is an Eclipse-based development environment that is customized for developing ...

  8. Spring Boot 构建一个 RESTful Web Service

    1  项目目标: 构建一个 web service,接收get 请求 http://localhost:8080/greeting 响应一个json 结果: {"id":1,&qu ...

  9. Eclips安装STS(Spring Tool Suite (STS) for Eclipse)插件

    Spring Tool Suite(sts)就是一个基于Eclipse的开发环境, 用于开发Spring应用程序.它提供了一个现成的使用环境来实现, 调试, 运行, 和部署你的Spring应用程序.包 ...

随机推荐

  1. python对象的基本操作代码

    基础: #对象.方法() # a=1 # b=a # a=2 # # _a=2423 # # print(a) # print(b) # # print(False and False) # prin ...

  2. Sass嵌套

    Sass 中还提供了选择器嵌套功能,但这也并不意味着你在 Sass 中的嵌套是无节制的,因为你嵌套的层级越深,编译出来的 CSS 代码的选择器层级将越深,这往往是大家不愿意看到的一点. 选择器嵌套为样 ...

  3. js object 常用方法总结

    Object.assign(target,source1,source2,...) 该方法主要用于对象的合并,将源对象source的所有可枚举属性合并到目标对象target上,此方法只拷贝源对象的自身 ...

  4. Oracle_rowid_rownum分页

      Oracle_rowid_rownum_分页 --rowid select * from account where rowid='AAASR6AAEAAAAJWAAA';       selec ...

  5. APACHE 服务器开启URL REWRITE模块的方法

    最近做wordpress,发现固定链接总是设置不了.后来发现是由于apache服务器的URL REWIRITE模块没有开启导致. 查询了资料之后终于设置成功,记录下步骤: 1:开启apache的url ...

  6. 如何使用cmd打开磁盘目录和文件

    在windows操作系统中拥有命令行工具(cmd).cmd具有强大的功能,这里我就和大家介绍一下怎么使用cmd命令打开文件. 工具/原料 cmd命令行 打开cmd 1 在windows操作系统中按住w ...

  7. 关于在vue-cli中使用微信自动登录和分享

    (以下所有接口由后台提供) 一.微信自动登录 //定义事件 methods:{ //判断是否微信登陆 是不是微信浏览器 isWeiXin() { let ua = window.navigator.u ...

  8. Javascript闭包入门(译文)

    前言 总括 :这篇文章使用有效的javascript代码向程序员们解释了闭包,大牛和功能型程序员请自行忽略. 译者 :文章写在2006年,可直到翻译的21小时之前作者还在完善这篇文章,在Stackov ...

  9. [SinGuLaRiTy] NOIP模拟题 by liu_runda

    [SinGuLaRiTy-1046] Copyright (c) SinGuLaRiTy 2017. All Rights Reserved. 题目名称 兔子 被子 蚊子 源程序文件名 rabbit. ...

  10. CentOS 7安装Tomcat8

    一.安装环境 tomcat的安装依赖于Java JDK,需要先安装配置正确的JDK http://www.cnblogs.com/VoiceOfDreams/p/8376978.html 二.安装包准 ...