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

 

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