四、推荐的实用技术
简介: lombok插件, devtools热部署, 接口测试工具postMan, controller的常用注解
项目源码:https://github.com/y369q369/springBoot.git -> tips
私聊QQ: 1486866853
1. lombok使用
1)在pom.xml中添加依赖包

2) lombok 插件 安装
eclipse / myeclipse 安装 -> 找到 项目中的 maven仓库下载的lombok依赖包位置 -> 将 lombok的jar包 复制到 eclipse / myeclipse 的程序安装地址(包含myeclipse.ini文件)
-> 打开 myeclipse.ini 文件,在最下面添加 -javaagent:D:\MyEclipse2018\lombok-1.18.6.jar(我的myeclipse安装地址D:\MyEclipse2018,自行修改)



idea安装 -> File -> Settings -> Plugins -> 在输入框中输入lombok -> 选择Lombok插件 -> 右边有install,安装完即可

3)实际使用 -> 先创建 TestLombok类 -> 在创建 LombokController类 ( 具体使用看代码 )


TestLombok
package demo.vo;
import lombok.Data;
/**
* @author GrassPrince
* @Da2019年4月5日 2019年4月5日 - 上午9:57:55
* @Description 测试lombok的@data注解
* @data : 包含Getter/Setter/无参构造/ToString
* @Getter、@Setter等都是单个功能
*/
@Data
public class TestLombok {
private String cup;
private String Briefs;
}
LombokController
package demo.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import demo.vo.TestLombok;
import lombok.extern.slf4j.Slf4j;
/**
* @author GrassPrince
* @Da2019年4月5日 2019年4月5日 - 上午10:01:46
* @Description 测试lombok的@Slf4j:自动创建Slf4j日志对象log
* @RestController : @Controller 和 @ResponseBody结合注解 ,既是controller也返回到页面json数据
* @ResponseBody 解析返回值的Content-Type: String -> text/html 对象/Map集合 -> application/json
*/
@RestController
@Slf4j
public class LombokController {
@GetMapping("/testLombok")
public TestLombok testLombok() {
// 这边能够创建对象即说明@Data注解可以创建无参构造
TestLombok lombok = new TestLombok();
// 可以set即说明@Data注解可以创建setter方法
lombok.setBriefs("平底");
lombok.setCup("C");
// @Slf4j创建Slf4j日志对象log
log.info("@Data注解包含toString方法: {}", lombok.toString());
log.info("@Data注解包含getter方法: 罩杯 - {}, 内裤 - {}", lombok.getBriefs(), lombok.getCup());
return lombok;
}
}
2.devtools使用
在pom.xml加入依赖即可,每次修改java代码和配置文件保存后自动执行

3. postMan的下载
由于2018年初chrome停止对chrome应用程序的支持,现在使用的大多是官方推出的Postman 开发者版本,直接exe安装即可
官网下载地址: https://www.getpostman.com/downloads/
嫌弃下载慢的有postMan7.0.7版本百度网盘下载地址: https://pan.baidu.com/s/1gRCWgPygS3CNs-vl6c9xtg,提取码: id11
4.controller的常用注解 使用 postMan测试
1)整个 RequestController 内容
package demo.controller; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import demo.vo.TestLombok; import lombok.extern.slf4j.Slf4j; /** * @author GrassPrince * @Da2019年4月6日 2019年4月6日 - 下午2:27:41 * @Description controller常用注解的使用 * @RestController 等价于 类上的@Controller 和 方法上的@ResponseBody 结合, 即这个controller 所有方法返回的都是json数据 * @RequestMapping("test"): 页面请求的地址,放在controller上即每个方法前面都要加上 /test * @RequestMapping("test") 也可写作 @RequestMapping("/test"), 有无 / 皆可 * @Slf4j lombok的日志操作工具,注入log对象 * @GetMapping 一般用于查询 * @PostMapping 一般用于新增 , @PutMapping 一般用于 修改 ,实际上 @PostMapping 用途包括 @PutMapping * @DeleteMapping 一般用于删除 */ @RestController @RequestMapping("test") @Slf4j public class AnnotationController { // @GetMapping("testGet") 等价于 @RequestMapping(value = "testGet", method = RequestMethod.GET) // @RequestParam("param") String param : 请求的参数格式为 .../test/testGet?param=值 @GetMapping("testGet") public String testGet(@RequestParam("param") String param) { log.info("页面传来的参数为: {}", param); return "页面传来的参数为: " + param; } // @PostMapping("testPost") 等价于 @RequestMapping(value = "testPost", method = RequestMethod.POST) // 多个@RequestParam接取参数的 格式为 .../test/testPost?param=值1¶m2=值2 @PostMapping("testPost") public String testPost(@RequestParam("param") String param, @RequestParam("param2") String param2) { log.info("页面传来的参数为: {}, {}", param, param2); return "页面传来的参数为: " + param + "和" + param2; } // @PutMapping("testPut/{param}") 等价于 @RequestMapping(value = "testPut/{param}", method = RequestMethod.PUT) // @PathVariable("param") String param : 请求的参数格式 与 @PutMapping("testPut/{param}")统一, 即 .../test/testPut/值 // @PutMapping("testPut/{param}") 中参数位置可随意放, 如 @PutMapping("{param}/testPut") @PutMapping("testPut/{param}") public String testPut(@PathVariable("param") String param) { log.info("页面传来的参数为: {}", param); return "页面传来的参数为: " + param; } // @DeleteMapping("testDelete") 等价于 @RequestMapping(value = "testDelete", method = RequestMethod.DELETE) // @RequestBody 接收请求的头部 content-type = application/json 或 application/xml, 接取的参数可以使对象, 数据类型, 集合 @DeleteMapping("testDelete") public String testDelete(@RequestBody TestLombok tetstLombok) { log.info("页面传来的参数为: {}", tetstLombok); return "页面传来的参数为: " + tetstLombok; } }
2)postMan对于各个方法的逐个测试
testGet:@GetMapping请求 和 @RequestParam接收单个参数

testPost:@PostMapping请求 和 @RequestParam接收多个参数

testPut:@PutMapping请求 和 @PathVariable接收参数

testDelete : @DeleteMapping请求 和 @RequestBody接收json数据



浙公网安备 33010602011771号