最新阿昌教你自定义注解验证Bean对象,java校招面试经验

最后

即使是面试跳槽,那也是一个学习的过程。只有全面的复习,才能让我们更好的充实自己,武装自己,为自己的面试之路不再坎坷!今天就给大家分享一个Github上全面的Java面试题大全,就是这份面试大全助我拿下大厂Offer,月薪提至30K!

我也是第一时间分享出来给大家,希望可以帮助大家都能去往自己心仪的大厂!为金三银四做准备!
一共有20个知识点专题,分别是:

Dubbo面试专题

JVM面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Java并发面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Kafka面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

MongDB面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

MyBatis面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

MySQL面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Netty面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

RabbitMQ面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Redis面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Spring Cloud面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

SpringBoot面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

zookeeper面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

常见面试算法题汇总专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

计算机网络基础专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

设计模式专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

接下来我们就通过自定义注解的方式,为大家介绍两个手机号 & 是否是日期

在此之前,都到这里了,你别问我注解是一个什么东西,这边建议您回炉一下 (≖‿≖

1、自定义手机号校验

  • 自定义注解

@Target({ElementType.FIELD})//用来描述属性字段

@Retention(RetentionPolicy.RUNTIME)//用来描述运行时状态

@Constraint(validatedBy = IsPhoneValidator.class)//指定自定义校验器

public @interface IsPhone {

//校验错误信息

String message() default “手机号格式有误”;

//是否强制校验

boolean isRequired() default false;

Class<?>[] groups() default {};

Class<? extends Payload>[] payload() default {};

}

  • 自定义校验器

这里我用了hutool包的【正则表达式池】 (ฅ’ω’ฅ

//实现ConstraintValidator,泛型为: <校验注解,需要校验的值的类型>

public class IsPhoneValidator implements ConstraintValidator<IsPhone,String> {

private Boolean isRequired = false;

@Override

public void initialize(IsPhone constraintAnnotation) {

isRequired = constraintAnnotation.isRequired();

}

//参数1:传来的参数内容

//参数2:上下文(可以获取到注解填写的内容)

@Override

public boolean isValid(String phone, ConstraintValidatorContext constraintValidatorContext) {

if (isRequired){

return isPhone(phone);

}else {

if (!StringUtils.isEmpty(phone)){

return isPhone(phone);

}else {

return true;

}

}

}

//采用hutool包中的正则表达式池来校验手机号

public boolean isPhone(String phone){

return ReUtil.isMatch(Validator.MOBILE,phone);

}

}

  • 测试

这样子定义完就可以使用了

1

@PostMapping(“/test”)

public R test(@Validated @RequestBody TestBean testBean){

System.out.println(testBean.getPhone());

return R.ok();

}

因为我这里没有定义自定义拦截校验拦截器,就是如下的情况:↓

在这里插入图片描述

这样子就算完成了 (•˘_˘•


2、自定义校验时间是否为合法

那一开始肯定也是定义我们的自定义注解

  • 自定义注解

最后

由于篇幅有限,这里就不一一罗列了,20道常见面试题(含答案)+21条MySQL性能调优经验小编已整理成Word文档或PDF文档

MySQL全家桶笔记

还有更多面试复习笔记分享如下

Java架构专题面试复习

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

分享如下**

[外链图片转存中…(img-xFci5aob-1715683941149)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 26
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值