一、lombok.jar
1.@Data : 注解在类上, 为类提供读写属性, 此外还提供了 equals()、hashCode()、toString() 方法
2.@Getter/@Setter: 注解在类上, 为类提供读写属性
3.@ToString: 注解在类上, 为类提供 toString() 方法
4.@Slf4j : 注解在类上, 为类提供一个属性名为 log 的 log4j 的日志对象
省略的是如下代码:
final Logger logger=LoggerFactory.getLogger(XXX.class);
5.@AllArgsConstructor: 注解在类上,添加一个含有所有已声明字段属性的构造方法
6.@Accessors(chain = true):注解在类上,chain属性的值默认为true,生成getter和setter方法,setter方法返回当前对象
二、swagger注释API
例子:
@ApiOperation("信息软删除")
@ApiResponses({ @ApiResponse(code = CommonStatus.OK, message = "操作成功"),
@ApiResponse(code = CommonStatus.EXCEPTION, message = "服务器内部异常"),
@ApiResponse(code = CommonStatus.FORBIDDEN, message = "权限不足") })
@ApiImplicitParams({ @ApiImplicitParam(paramType = "query", dataType = "Long", name = "id", value = "信息id", required = true) })
@RequestMapping(value = "/remove.json", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public RestfulProtocol remove(Long id) {
注释属性
@ApiModelProperty(value = "标题")
private String title;
注释方法参数
public Result<List<XXX>> getProvinceByName(@ApiParam(“方法参数的注释信息") @RequestParam(value = "name", required = false) String name)
三、Jackson中的@JsonProperty注解
可以使用Map传输数据,Map的key=dpt_id对应的value值就是scheduleld的值,而不用使用对象传递数据,用属性的getXXX方法获取。
@JsonProperty(value = “dpt_id”, required = true)
private String scheduleId;
@JsonProperty(value = “triggers”, required = true)
private List triggers;
value属性:代表该属性序列化和反序列化的时候的key值。
required属性:默认false,例如当required=false的时候,当反序列化的时候没有找到key值,就会报错。
四、阿里FastJson中的@JSONField
@JSONField(serialize=false)
public Date date;
指定字段不序列化
五.SpringMVC注解
用在实体类属性字段上面,在Controller层中用@Validated @RequestBody CouponBindPostParamVO couponBindPostParamVO
这种方法,校验参数是否合法.
@NotNull:不能为null,但可以为empty. 一般用在基本数据类型的非空校验上
@NotEmpty:不能为null,而且长度必须大于0. 一般用在集合类上面
@NotBlank:只能作用在String上,不能为null,而且调用trim()后,长度必须大于0. 只能作用在接收的String类型上