您的位置:首页 > 编程语言 > Java开发

SpringBoot GET POST 简单搭建

2017-09-06 09:52 387 查看
概述

本文简单记录了使用Spring Boot搭建服务器的过程

1. 在eclipse搭建Maven 项目


2. maven 配置文件pom.xml增加依赖包

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.1.RELEASE</version>


3. 编写代码, 我的代码结构如下



4. 编写最简单的Hello接口, 接口定位都放在controller包中

@RequestMapping("/firstSpringBoot")
public class ResponseController {

@RequestMapping("/hello")
public String hello() {
return "Hello";
}
Controller 是 Spring 中最基本的组件,主要是处理跟用户交互的,一般每个业务逻辑都会有一个 Controller,提供给用户 http 请求接口,用户请求接口进行数据访问。

Controller有以下有些常用的注解
@Controller:标注 Controller 类,处理 http 请求

@ResponseBody ,= @Controller + @ResponseBody主要是为了使 http 请求返回数据格式为 json 格式,一帮情况下使用这个注解

@RequestMapping:配置 url 映射,可以作用于类上,也可以在方法上

以下接口 在访问http://localhost:8080/firstSpringBoot/hello  会返回"Hello"字段

@RequestMapping  可以指定GET,POST,DELETE,PUT四种标准的 Restfulapi请求方法  method没有指定默认为get请求

@GetMapping = @RequestMapping  +  method = RequestMethod.GET

@PostMapping = @RequestMapping + method = RequestMethod.POST

@RequestMapping(value= "/getResponse" , method = RequestMethod.GET)
public Response getResponse()  {
return responseServiceImpl.getResponse("test");
}
如果返回的是对象, 那会默认将对象转换为Json格式返回
public class Response {

private int code;

private String message;
private List<String> messages;

。。。。。。
}
返回结果:


@PathVariable @RequestParam都可以用于GET请求加参数,以下是两者的区别

使用@RequestParam接收参数,如下图

@GetMapping(value= "/getMessagePath")
public Response getResponse(@RequestParam(value="message") String message)  {
return responseServiceImpl.getResponse(message);
}
url结构:

url=.../getMessagePath?message=${message}



@PathVariable

@RequestMapping(value= "/getMessage/{message}", method = RequestMethod.GET)
public Response getMessage(@PathVariable(value="message") String message)  {
return responseServiceImpl.getResponse(message);
}
url结构:url=.../getMessage/${message}  占位符的方式


POST 请求可以使用如下几种方式:

@RequestMapping(value= "/getMessage", method = RequestMethod.POST)
public Response getMessage(int code, String message)  {
return responseServiceImpl.getResponse(code, message);
}
发送该请求如下:



也可以使用如下形式发送请求



  

POST使用 @RequestBody

@PostMapping(value= "/getMessageBody")
public Response getMessagePost(@RequestBody PostBean bean)  {
return responseServiceImpl.getResponse(bean.getCode(), bean.getMessage());
}
public class PostBean {

private int code;

private String message;

private List<String> messages;
。。。。
}

使用以下方式请求



3. 运行方式

Spring boot自带Tomcat作为服务器

书写以下类作为启动入口(@SpringBootApplication作为注解)

@SpringBootApplication
public class TestHello {

public static void main(String[] args) {
// TODO Auto-generated method stub
SpringApplication.run(TestHello.class, args);
}

}


@c用于标注业务层组件

@Service
public class ResponseServiceImpl implements IResponseService{

@Autowired
private ResponseDaoImpl responseDaoImpl;

@Override
public Response getResponse(String message) {
return responseDaoImpl.getResponse(message);
}

@Override
public Response getResponse(int code, String message) {
// TODO Auto-generated method stub
return responseDaoImpl.getResponse(code, message);
}
}


@controller 中注入@Service

@RestController
@RequestMapping("/firstSpringBoot")
public class ResponseController {

@Autowired
IResponseService responseServiceImpl;
。。。
}


如果需要使用注解方式注入, 那注入的类必须使用注解

@Service
public class ResponseServiceImpl implements IResponseService{

@Autowired
private ResponseDaoImpl responseDaoImpl;
。。。
}

@Repository
public class ResponseDaoImpl implements IResponseDao{


运行启动类



启动以后使用localhost:8080来发送请求。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: