springboot
springboot web应用
REST风格
下面是在controller中各个路径注解对应的参数的传递
package com.hand.demo01.controller;
import org.springframework.web.bind.annotation.*;
/**
* @author qingsheng.chen@hand-china.com
*/
@RestController
@RequestMapping("/rest")
public class RestDemoController {
@RequestMapping(method = RequestMethod.GET, path = "/demo1")
// @GetMapping(path = "/demo1")
public String demo1() {
return "Hello World";
}
//通过路径上传参数
@GetMapping(path = "/demo2/{name}")
public String demo2(@PathVariable String name) {
return "Hello " + name;
}
@GetMapping(path = "/demo3")
public String demo3(@RequestParam String name) {
return "Hello " + name;
}
@PostMapping(path = "demo4")
public String demo4(@RequestBody String name) {
return "Hello " + name;
}
@PostMapping(path = "demo5")
public String demo5(@RequestParam String name) {
return "Hello " + name;
}
}
- 没有参数的接口
@GetMapping(path = "/demo1")
public String demo1() {
return "Hello World";
}
-
路径上通过{}传参数,通过@PathVariable注解传递参数,要求方法中参数名和传递的参数名要一致
//通过路径上传参数
@GetMapping(path = “/demo2/{name}”)
public String demo2(@PathVariable String name) {
return "Hello " + name;
}
- query传参数,在url上以 ? key=value 的形式来拼接 传参数。通过@RequestParam传参数,要求方法中参数名和传递的参数名要一致
@GetMapping(path = "/demo3")
public String demo3(@RequestParam String name) {
return "Hello " + name;
}
- body传参数,通过映射参数。@RequestBody传参数
@PostMapping(path = "demo4")
public String demo4(@RequestBody String name) {
return "Hello " + name;
}
- formdata传参数,@RequestParam传参数
@PostMapping(path = "demo5")
public String demo5(@RequestParam String name) {
return "Hello " + name;
}
springboot 数据相关
关系型数据库
JPA
实体类注解中
@NotBlank,@NotNull的区别:
@NotNull表示不能为Null,@NotBlank表达不能为Null并且不能为空字符串(即‘’“)
@Range表示范围
@Range(min = 1, max = 100)
private Integer age;
@JsonIgnore注解可以隐藏在url的参数,例如密码之类的
@JsonIgnore
private String pwd;
//或者在类上面加
@JsonIgnoreProperties("pwd")
@JsonIncloude(JsonInclude.Include.NON_NULL)注解放在类上面可以返回不为空的字段
controller注解中
XXXRepository.save方法底层逻辑
如果保存的对象存在XXXId(也就是主键)则执行更新,如果不存在主键则执行新增,如果有主键且数据库中没有存储这个主键则也执行新增。
如果要在控制台打印sql
在application.properties中加入spring.jpa.show-sql=true