Java常用註解

一、Bean的註解

  1. @Entity  表示是一個實體類
  2. @Table(name = "xxx")  表示對應的數據庫表名
  3. @Id  表示主鍵
  4. @Column(name = "id")  表示映射表對應的字段名
  5. @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") 表示入參格式化,也就是接收的參數
  6. @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")  表示出參格式化,也就是返回的參數
  7. @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;
}

二、其它常用

  1. @Controller  表示這是一個控制器類
  2. @ResponseBody  表示方法返回結果直接寫入HTTP響應正文(ResponseBody)中,一般在異步獲取時使用
  3. @RequestBody   表示將HTTP請求正文插入方法中,將參數寫入對象中
  4. @RequestMapping("/api/getName")  處理請求地址映射的註解,可用於類和方法上面。用在類上,表示類中的所有響應請求的方法都是以該地址作爲 父路徑;用於方法上,表示在類的父路徑下追加方法上註解中的地址將會訪問到該方法。共有8個屬性,可以設置提交類型(GET/POST...)、提交內容類型、返回值字符編碼等
  5. @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);
    }
    
}
  1. @RestController  表示這是一個控制器類,是@Controller 和 @RestponseBody 的組合。
  2. @GetMapping("/api/getName")  相當於@RequestMapping(method = RequestMethod.GET)
  3. @PostMapping("/api/getName")  相當於@RequestMapping(method = RequestMethod.POST)
  4. @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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章