java自定义注解及其使用
创始人
2024-02-14 18:06:36
0

自定义注解

一、什么是注解?

注解是一种能被添加到java源代码中的元数据,方法、类、参数和包都可以用注解来修饰。注解可以看作是一种特殊的标记,可以用在方法、类、参数和包上,程序在编译或者运行时可以检测到这些标记而进行一些特殊的处理。

二、自定义注解需要的基本元素

自定义注解需要用到的东西:

修饰符:访问修饰符必须为public,不写的话默认为public;

关键字:关键字为@interface;

注解名称:注解名称为自定义注解的名称,使用时候会用到;

注解类型元素:注解类型元素是注解中的内容,可以理解成自定义接口的实现部分;

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE,ElementType.METHOD})
@Documented
public @interface PermissionData{/*** 暂时没用* @return*/String value() default "";/*** 配置菜单的组件路径,用于数据权限*/String pageComponent() default "";
}

三、自定义注解用到的元注解

JDK中有一些元注解,主要有@Targert,@Rentention,@Document,@Inherited用来修饰注解。

@Target:表明该注解可以应用的java元素类型

Target类型描述
ElementType.TYPE应用于类、接口(包括注解类型)、枚举
ElementType.METHOD应用于方法
ElementType.FIELD应用于属性(包括枚举中的常量)
ElementType.CONSTRUCTOR应用于构造函数
ElementType.Package应用于包
ElementType.Parameter应用于方法的形参
ElementType.local_variable应用于局部变量
ElementType.AnnotationType应用于注解的类型

@Retention:表明该注解的生命周期

生命周期类型描述
RetentionPolicy.RUNTIME由jvm加载,包含在类文件中,在运行时可以被获取到
RetentionPolicy.Classjvm加载时丢弃,包含在类文件中,默认值
RetentionPolicy.Source编译时被丢弃,不包含在类文件中

@Doucument:表明该注解的元素可以被javadoc或类似的根据文档化

@Inherited:表明使用了@Inherited注解的元素,所标记的子类也拥有这个注解

自定义注解的使用:

/*** 导出excel** @param request* @param hrAttendaceExtraWork*/@RequestMapping(value = "/exportXls")@RequiresPermissions("hrAttendaceExtraWork:exportXls")@PermissionData(pageComponent = "staffManage/attendanceMange/HrAttendaceExtraWorkList")public ModelAndView exportXls(HttpServletRequest request, HrAttendaceExtraWork hrAttendaceExtraWork) {return super.exportXls(request, hrAttendaceExtraWork, HrAttendaceExtraWork.class, "加班申请");}

相关内容

热门资讯

三部门发文:完善幼儿园收费政策 12月23日,由国家发展改革委、教育部、财政部联合印发的《关于完善幼儿园收费政策的通知》(以下简称《...
三部门联合发布2025年劳动法... 中新网12月25日电 据最高人民检察院微信公众号25日消息,中华全国总工会、最高人民法院、最高人民检...
金融领域“黑灰产”违法犯罪集群... 海报新闻记者 孙佃潇 北京报道 12月25日,公安部召开新闻发布会,会上通报公安部和国家金融监督管理...
最高法、全国妇联、司法部联合发... 人民网北京12月25日电 (薄晨棣、高清扬)据最高人民法院消息,24日,最高法与全国妇联、司法部联合...
200余个金融领域犯罪团伙被警... 文 | CFN 大河 图 | 微摄 2025年12月25日,公安部在京召开专题新闻发布会,通报了一场...
锐评丨套牌电动车,闯了法律红灯 一辆在昌平被烧毁的电动车,却在朝阳出现交通违法记录;车牌早已注销,仍收到交通违法提示短信;人在国外度...
金融领域“黑灰产”行为法律关系... 新京报讯(记者张建林)今年6月至11月,公安部会同国家金融监管总局部署17个重点省市开展为期6个月的...
比亚迪起诉“龙哥讲电车”一审胜... 12月25日,比亚迪法务部公布,就起诉自媒体账号“龙哥讲电车”、“满格电新能源”等一案,已收到法院一...
广州首个游戏电竞产业专项扶持政... 钛媒体App 12月25日消息,《广州市扶持游戏电竞产业发展的十八条措施》在广州市人民政府官网正式发...