【Spring Boot】 with a RESTful Web Service

环境准备

  1. IntelliJ IDEA
  2. Maven 3.2+
  3. JDK 1.8 or later
  4. Git上的代码
     

创建工程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
 

创建实体类

使用RESTfule风格的开发模式,前后台用JSON格式交互数据。服务会处理/greetingGET请求,GET请求返回一个200 OK的响应,其中包含了JSON来表示greeting。JSON数据如下:

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

实体类如下:

package com.sue.demo.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;
	}
}

这个项目用了 Jackson JSON库自动将类型Greeting的实例封送为JSON。
 

创建控制器

在Spring中,HTTP请求由控制器处理,这里采用@RestController注解

控制器如下:

package com.sue.demo.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));
	}
}
  1. @GetMapping注解确保地址为/greeting的 HTTP请求映射到greeting()方法。

其他HTTP动词也有注释(例如POST的@PostMapping)。 它们都可以等同于@RequestMapping注释,只需改变动词,(例如@RequestMapping(method = GET))。

  1. @RequestParam将请求中的参数的值绑定到greeting()方法的对应参数中。 如果请求中不存在name参数,则将默认值设置为"World"。

  2. 传统MVC控制器和RESTful Web服务控制器之间的主要区别在于创建HTTP请求体的方式。 RESTful Web服务控制器填充并返回Greeting对象, 对象数据将作为JSON直接写入HTTP响应。传统模式依赖于视图技术来将greeting数据执行到HTML的服务器端渲染。

  3. 此代码使用Spring @RestController注解,该注解将类标记为控制器,其中每个方法均返回实体对象而不是URL地址。 这是同时包含@Controller@ResponseBody的简写。

  4. Greeting对象必须转换为JSON。 由于Spring支持HTTP消息转换器,您无需手动进行此转换。 因为Jackson 2位于类路径中,它会自动选择Spring的MappingJackson2HttpMessageConverter来将Greeting实例转换为JSON。

  5. @SpringBootApplication是一个方便注释,它添加了以下所有内容:

    @Configuration:将类标记为应用程序上下文的Bean定义的源。

    @EnableAutoConfiguration:告诉Spring Boot根据类路径设置,其他bean和各种属性设置开始添加bean。 例如,如果spring-webmvc在类路径上,则此注释将应用程序标记为Web应用程序并激活关键行为,例如设置DispatcherServlet。

    @ComponentScan:告诉Spring在com / example包中寻找其他组件,配置和服务,让它找到控制器。

    main()方法使用Spring Boot的SpringApplication.run()方法启动应用程序。 您是否注意到没有一行XML? 也没有web.xml文件。 此Web应用程序是100%纯Java,因此您无需处理任何管道或基础结构。
     

测试

点击run,出现如下页面:
在这里插入图片描述
 
Tomcat默认端口是8080,这里我将端口改为8181,在application.properties文件中配置server.port = 8181
在这里插入图片描述
 
访问地址 http://localhost:8181/greeting得到如下页面:
在这里插入图片描述
 
访问地址http://localhost:8181/greeting?name=Sue得到如下页面:
在这里插入图片描述

 

spring官网教程:https://spring.io/guides/gs/rest-service/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值