一、Bean的註解
- @Entity 表示是一個實體類
- @Table(name = "xxx") 表示對應的數據庫表名
- @Id 表示主鍵
- @Column(name = "id") 表示映射表對應的字段名
- @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") 表示入參格式化,也就是接收的參數
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") 表示出參格式化,也就是返回的參數
- @Transient 表示這個變量屬性不在是對象持久化的一部分,不希望數據存到數據庫,僅僅當作臨時變量使用,不修改已經存在的數據庫數據和結構,不能修飾方法和類。
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
@Entity
@Table(name = "user")
public class Demo {
@Id
@Column(name = "id")
private Integer id;
@Column(name = "name")
private String name;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
//timezone : JsonFormat序列化時間是以國際標準時間GMT格式化的,而在國內是默認CST時區,相差8小時
//@JsonFormat 註解不是 Spring自帶的,需要添加依賴包,springboot項目不用,spring-boot-starter-web自帶
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@Column(name = "birth")
private Date birth;
}
二、其它常用
- @Controller 表示這是一個控制器類
- @ResponseBody 表示方法返回結果直接寫入HTTP響應正文(ResponseBody)中,一般在異步獲取時使用
- @RequestBody 表示將HTTP請求正文插入方法中,將參數寫入對象中
- @RequestMapping("/api/getName") 處理請求地址映射的註解,可用於類和方法上面。用在類上,表示類中的所有響應請求的方法都是以該地址作爲 父路徑;用於方法上,表示在類的父路徑下追加方法上註解中的地址將會訪問到該方法。共有8個屬性,可以設置提交類型(GET/POST...)、提交內容類型、返回值字符編碼等
- @PathVariable 用來獲取請求路徑URL中的動態參數
@Controller
@RequestMapping(value = "/api")
public class UserController {
// 請求地址爲: http://localhost:8080/api/user/create...
@RequestMapping(value = "/user/create")
@ResponseBody
// 將URL請求中的datas 參數直接寫入user中
public int createUser(@RequestBody User user) {
...
// 不會被解析成路徑,而是直接寫入HTTP響應正文中
return 1;
}
// @RequestMapping中的id/name 和 下面參數 @PathVariable中的id/name 一一對應
@RequestMapping(value = "/add/{id}/{name}/{status}")
@ResponseBody
public int addUser(@PathVariable int id, @PathVariable String name, @PathVariable boolean status) {
...
return new User(id,name,status);
}
}
- @RestController 表示這是一個控制器類,是@Controller 和 @RestponseBody 的組合。
- @GetMapping("/api/getName") 相當於@RequestMapping(method = RequestMethod.GET)
- @PostMapping("/api/getName") 相當於@RequestMapping(method = RequestMethod.POST)
- @RequestParam 表示將普通參數綁定到控制器的方法參數上
@GetMapping(value = "/api/judges/queryAllByPage")
public HashMap<String,Object> queryAllByPage(@RequestParam(value = "pageNum", defaultValue = "0") int pageNum,
@RequestParam(value = "pageSize",defaultValue = "15") int pageSize){
...
}
# @RequestParam(value="參數名",required="true/false",defaultValue="")
# required 默認是true,當路徑不包含時是null
# defaultValue 設置默認參數,當路徑不包含時生效,設置後 required 自動變爲 false