自定义注解

您所在的位置:网站首页 骑马与砍杀乱舞水浒施耐庵在哪 自定义注解

自定义注解

2024-04-30 01:32| 来源: 网络整理| 查看: 265

大家对注解应该已经不会陌生了,但是往往在开发中已有的注解满足不了我们的业务需求时,就需要我们自定义注解来完成我们的工作;

从注解使用位置可以分为 属性、方法和类 下面就分别从这两个方面提供一些例子,来分析一下如何自定义注解:

一、属性注解

一般在实体类中使用的字段注解有:@NotNull 、 @Range(min = 20 , max = 99) 等都可以对实体类的字段值进行验证,举个例子:如果我们有需求传入的字段信息需要是一个集合中的元素,这时就没有注解可以满足了、这里我们需要自定义注解;

1、定义一个 @CheckField 注解,通过 @interface声明一个注解: package com.dongl.utils.annotation; import javax.validation.Constraint; import javax.validation.Payload; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** * @author D-L * @date 2020-08-24 * * @Constraint 通过使用validatedBy来指定与注解关联的验证器 * * @Retention 用来说明该注解类的生命周期。 * * RetentionPolicy.SOURCE: 注解只保留在源文件中 * RetentionPolicy.CLASS : 注解保留在class文件中,在加载到JVM虚拟机时丢弃 * RetentionPolicy.RUNTIME: 注解保留在程序运行期间,此时可以通过反射获得定义在某个类上的所有注解。 */ @Target({ ElementType.FIELD}) //只允许用在类的字段上 @Retention(RetentionPolicy.RUNTIME) //注解保留在程序运行期间,此时可以通过反射获得定义在某个类上的所有注解 @Constraint(validatedBy = VerificationField.class) public @interface CheckField { /** * 合法的参数值 * */ String[] fieldValues(); /** * 提示信息 * */ String message() default "参数不为指定值"; Class[] groups() default {}; Class[] groups() default {}; Class


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3