Maven代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.10.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>cn.it1995</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version><name>demo</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope><exclusions><exclusion><groupId>org.junit.vintage</groupId><artifactId>junit-vintage-engine</artifactId></exclusion></exclusions></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin></plugins></build></project>

服务端通过处理/greeting的get方法,接收name这个string参数,返回200的json状态。

body返回如下:

{"id": 1,"content": "Hello, World!"
}

id这个域是greetting的主键,这个值是唯一的。content里面是问候语。

Greeting.java代码如下:

package cn.it1995.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 id;}public String getContent() {return content;}
}

程序通过适用JaksonJson库,将Greeting自动整理成json,Jackson默认被包含在web starter的jar包中,也就是这个jar包里面:

        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>

使用@RestController创建Rest风格的WebService,GreetingController.java监听了/greeting的GET方法,代码如下:

package cn.it1995.demo;import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;import java.util.concurrent.atomic.AtomicLong;@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));}
}

@GetMapping:代表适用HTTP的get方法,参数为/greeting代表http里面的url为/greeting,等同于@RequestMapping(method=GET)。

@RequestParam:为需要传入的参数,defaultValue为设置默认值。

@RestController:等同于@Controller加@ResponseBody

这里Greeting对象能够转换为json多亏了Jackson2。Spring的MappingJackson2HttpMessageConverter会将Greeting转换为JSON。

程序运行截图如下:

Spring Boot文档阅读笔记-构建Restful风格的WebService相关推荐

  1. Spring Boot文档阅读笔记-构建Restful风格的WebService客户端

    对应的maven如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns=" ...

  2. Spring Boot文档阅读笔记-构建SOAP的web Service服务

    这里使用的Maven,Java 8来操作的. Maven相关代码为: <dependencies><dependency><groupId>org.springfr ...

  3. Spring Boot文档阅读笔记-构建SOAP的web Service Client

    同样,这里是使用Maven及Java8 同样Maven添加如下依赖: <dependency><groupId>wsdl4j</groupId><artifa ...

  4. Spring Boot文档阅读笔记-how-to-implement-2-way-ssl-using-spring-boot

    two-way-ssl需要12次握手(除去TCP的三次握手),如下图: 双向认证过程: 1.客户端发送ClientHello消息,告诉服务端要使用SSL. 2.客户端发送ServerHello的响应, ...

  5. Spring Boot文档阅读笔记-EhCache的使用

    这里要先注意2个概念: buffer和cache,很多人会讲这两个概念混用.但其实这是两个概念! buffer:一般是指存储临时数据的实体.只能读写一次,对于程序员来说buffer是可见的,比如TCB ...

  6. Spring Boot文档阅读笔记-Spring Boot @Bean解析

    利用SpringBoot的@Bean创建一个简单的Bean. Spring的@Bean注解是放在方法上的,带上这个注解的方法会被Spring容器管理.并且这个方法要返回一个值(对象),这个值和对象会被 ...

  7. Spring Boot文档阅读笔记-对Securing a Web Application解析

    首先创建一个非安全的Web应用 这个应用包含两个页面,一个是home页面,一个是"Hello,World"页面.home页面使用Thymeleaf,相关代码如下: <!DOC ...

  8. Spring Boot文档阅读笔记-对Messaging with RabbitMQ解析

    此篇教程以Rabbitmq作为消息队列服务端,使用Spring Boot产生和发布消息. 使用Spring AMQP的RabbitTemplate发布消息,使用MessageListenerAdapt ...

  9. Spring Boot文档阅读笔记-@SpringBootApplication官方解析与实例(1.5.19)

    目录 官方解析 博主例子 官方解析 @SpringBootApplication有如下3个特点: 1. @EnableAutoConfiguration: 能够启动Spring Boot的自动配置机制 ...

最新文章

  1. Leetcode 391.完美矩形
  2. 设计模式在我工作中的巧妙实践
  3. numpy.linspace详解
  4. 回顾亚马逊推荐系统20年发展
  5. 【项目管理】变更管理与过程改进
  6. CentOS平滑更新nginx版本
  7. Eclipse Debug调试详解
  8. 女孩子偷偷学好软件测试,想要年薪30w也没有很难!
  9. 医药领域知识图谱快速及医药问答项目
  10. 计算24点有什么窍门或技巧吗?
  11. 继云计算巨头失火后,微软决定送数据中心去“泡澡”!
  12. net空间一次购买终身使用_西部数码使用指南:如何选择合适的虚拟主机
  13. CSS实现抽奖大转盘
  14. WinForm使用CefSharp,嵌入浏览器
  15. vue 父组件重新加载子组件
  16. 底层放弃教育,中产过度焦虑,上层不玩中国高考
  17. Android中实现播放背景音乐功能
  18. kumo词云使用io_Microsoft Kumo Search可以在Google上使用。 再次。
  19. 搜狐云景客户端工具评测之WordPress的搭建
  20. 中国国内采购平台大全

热门文章

  1. 20那天android得知
  2. MySQL 复制滞后怎么办?
  3. 2014 华为机考 中国海洋大学上午第三题(java实现)
  4. 北京黑龙江商会成立纪实(2)
  5. 面试问“请介绍下自己”,应聘者就回了两点,立马勾起HR的兴趣!
  6. 可视化实战!Python+BI,手把手教你做炫酷的NBA可视化分析
  7. jx8net一定在所有的方方面面都更坚强更勇敢了吧
  8. 一个值得收藏的小工具
  9. Python 基础,不看会后悔哦!
  10. 程序员山洞开发程序,两年敲45万行代码,网友:一般人扛不住