Java基础-常用注解

举报
Photon2 发表于 2021/04/01 12:12:42 2021/04/01
【摘要】 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,首先在参数实体类上面加上相关的验证信息


img

2,controller层

img


@ControllerAdvice

参考链接

  1. 全局异常处理

  2. 全局数据绑定

  3. 全局数据预处理


@Aspect

参考链接

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。