1. @RequestParam
http://lcoalhost:8080/hello?username=1111
来获取url中?后面的属性值。
@GetMapping(value = "/hello")
public ResponseEntity getUser(@RequestParam String username){
}
2. @RequestBody
来获取post提交消息主体中的参数值,并且参数值为json格式,不可以是表单格式提交的参数
3. @PathVariable
http://localhost:8080/job/yaya
来获取url中指定部分的值,可以带上默认值
@DeleteMapping(value = "/job/{id}")
public ResponseEntity delete(@PathVariable(value = "id", required = false, defaultValue = "0") Long id){
}
4. @Param
常常使用在mapper文件夹中,来指定SQL语句中,对应的参数位置
@Modifying
@Query(value = "update sys_user set jybsf = :jybsf ,update_time = :updateTime where username in (:userName) ",nativeQuery = true)
void updateJybsf(@Param("userName") List<String> userName, @Param("jybsf") Integer jybsf, @Param("updateTime")Date updateTime);
5. @Validated
使用在controller层,来表示接受到的参数是否符合某种规则,规则制定我们一般放置在参数的实体类中
@PutMapping(value = "/job")
public ResponseEntity update(@Validated(Job.Update.class) @RequestBody Job resources){
jobService.update(resources);
return new ResponseEntity(HttpStatus.NO_CONTENT);
}
对应的实体类是
@Entity
@Data
@Table(name="sys_job")
public class Job implements Serializable {
/**
* ID
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
@NotNull(groups = Update.class)
private Long id;
/**
* 名称
*/
@Column(name = "name",nullable = false)
@NotBlank
private String name;
public @interface Update {}
}
注意,只有在@Validated(Job.Update.class)时候,才会启用让id不能为空,其他的照旧实行。