再定义一个参数校验注解,用于注解在某个入参实体的属性上;(注解在实体的属性上,实现对实体属性的校验) packagecom.atguigu.gulimall.coupon.learn.annotation;importjava.lang.annotation.*;/*自定义注解,用于做参数校验 min() : 参数最小长度 max():参数最大长度 regex():正则表达式 info(): 参数名称 ifNull(...
这边定义了两个自定义注解,一个是是否开启参数校验,另一个则是用来检查邮箱的格式是否符合规则的。至于这边为什么会用了两个注解,这个问题等到后面问题的时候再说。 1.1 开启参数校验的注解,这个注解就一个值isCheck(),该值为true时表示开启参数校验,为false时表示不开启,默认值为true packagecom.mcj.music.annotatio...
在beforeAdvice方法中,我们可以通过MyAnnotation参数获取到注解的值,并执行相应的操作。 使用自定义注解 接下来,我们来看一个示例,演示如何使用自定义注解,并为注解添加参数: @MyAnnotation("Hello, AOP!")publicclassMyService{publicvoiddoSomething(){System.out.println("Doing something...");}} 1. 2. 3. ...
在doAround()方法中,我们首先获取方法的参数列表,然后遍历每个参数,如果该参数为null,则将其设置为MyDefault注解的属性值。 总结 本文介绍了如何使用SpringBoot自定义注解和AOP技术来实现参数效验和默认值赋值的功能。通过自定义注解和AOP技术,我们可以方便地对参数进行效验和默认值赋值,提高了代码的可读性和可维护性。
设置@InterfaceLog不传参, 默认参数就是空,调用register接口,系统就默认打印info级别的日志: Java AOP自定义注解的使用场景有很多,多数都是用于一些增强功能,比如上面我们举例的用于日志打印,还有常用的如统计方法耗时、多数据源切换、防重等等。 === 以上就是本次的全部内容,都看到这里了,如果对你有帮助,麻烦点个...
创建自定义幂等性注解。 创建拦截器,实现幂等性逻辑判断。 配置拦截规则。 使用自定义幂等性注解。 具体实现如下。 ① 创建自定义幂等性注解 @Retention(RetentionPolicy.RUNTIME) // 程序运行时有效 @Target(ElementType.METHOD) // 方法注解 public @interface Idempotent { /** * 请求标识符的参数名称,默认为"req...
1、定义一个logger变量 private static Logger logger = LoggerFactory.getLogger(xxx.class); 1. 2、指定位置打印参数 logger.info("xxxx"); 1. 第二种打印方式 直接抽取为一个公共方法 1、将传入当前类这个步骤放到工具类中 public static void logInfo(Class<?> clazz,Throwable e){ ...
本来SpringMVC自带@Valid和@Validated两个注解可用来检查参数,但只能检查参数是bean的情况,对于参数是String或者Long类型的就不适用了,而且有时候这两个注解又突然失效了(没有仔细去调查过原因),对此,可以利用Spring的AOP和自定义注解,自己写一个参数校验的功能。
定义自定义注解 应用场景:在我之前上个项目的时候,有这样一个注解,就是在访问其他接口的时候必须要登录,那么这个时候我们就定义一个注解,让它去对用户是否登录进行校验,那么基于这样的一个场景,我们来定义一个校验登录的注解。 创建一个注解: @Target({ElementType.METHOD, ElementType.TYPE})@Retention(RetentionPolicy...