Java基础-常用注解
个人都不推荐使用
省去了一点时间,造成很多不必要的麻烦
Lombok
@RequiredArgsConstructor
如果类里面没有 final 的成员变量,有没有它是一样的。 但如果有的话,就会产生一个构造器,要求传入 final 对应的变量的值。然后无参构造器不可用 而
@RequiredArgsConstructor(staticName="of")
则意味着这个类不能用构造方法构造出来,必须通过 ThisClass.of(...)方法才能构造出来
@Slf4j
声明:
如果不想每次都写
private final Logger logger = LoggerFactory.getLogger(当前类名.class);
可以用注解@Slf4j;**
Spring
@PathVariable
//@PathVariable可以用来映射URL中的占位符到目标方法的参数中
@RequestMapping("/testPathVariable/{id}")
public String testPathVariable(@PathVariable("id") Integer id)
{
System.out.println("testPathVariable:"+id);
return SUCCESS;
}
Put 是更新
@validated
使用@Valid+BindingResult进行controller参数校验
@Valid 注解类型的使用:
## 空检查
@NotEmpty:用在集合类上面;不能为null,而且长度必须大于0
@NotBlank: 用在String上面;只能作用在String上,不能为null,而且调用trim()后,长度必须大于0
@NotNull:用在基本类型上;不能为null,但可以为empty。
## 长度检查
@Size(min=,max=):验证对象(Array,Collection,Map,String)长度是否在给定的范围之内
不要错用了异常类型,比如在int上不可用@size
@Length(min=, max=) : 只适用于String 类型
## Booelan检查
@AssertTrue: 验证 Boolean 对象是否为 true
@AssertFalse: 验证 Boolean 对象是否为 false
## 日期检查
@Past: 验证 Date 和 Calendar 对象是否在当前时间之前
@Future: 验证 Date 和 Calendar 对象是否在当前时间之后
@Pattern: 验证 String 对象是否符合正则表达式的规则
## 数值检查
建议使用在Stirng,Integer类型,不建议使用在int类型上,因为表单值为"" 时无法转换为int,但可以转换为Stirng为"",Integer为null
@Min: 验证 Number 和 String 对象是否大等于指定的值
@Max: 验证 Number 和 String 对象是否小等于指定的值
@DecimalMax: 被标注的值必须不大于约束中指定的最大值. 这个约束的参数是一个通过BigDecimal定义的最大值的字符串表示.小数存在精度
@DecimalMin: 被标注的值必须不小于约束中指定的最小值. 这个约束的参数是一个通过BigDecimal定义的最小值的字符串表示.小数存在精度
@Digits: 验证 Number 和 String 的构成是否合法
@Digits(integer=,fraction=): 验证字符串是否是符合指定格式的数字,interger指定整数精度,fraction指定小数精度。
Spring验证的错误返回 ·····> BindingResult
@Valid 和 BindingResult 是一一对应的,如果有多个@Valid,那么每个@Valid后面跟着的BindingResult就是这个@Valid的验证结果,顺序不能乱
1,首先在参数实体类上面加上相关的验证信息
2,controller层
@ControllerAdvice
-
全局异常处理
-
全局数据绑定
-
全局数据预处理
@Aspect
- 点赞
- 收藏
- 关注作者
评论(0)