java如何自定义注解呢?
下文笔者讲述Java自定义注解的方法及示例分享,如下所示
该注解可以应用的java元素类型
自定义注解简介
注解: 可添加到java源代码中的元数据,方法、类、参数和包 用于修饰这些对象 代码在编译或运行时,对这些特殊标记进行特殊的处理 我们将这种标记称之为“注解”
自定义注解所需要的信息
修饰符:
访问修饰符必须为public
不写的话默认为public;
关键字:
关键字为@interface;
注解名称:
注解名称为自定义注解的名称,使用时候会用到;
注解类型元素:
注解类型元素是注解中的内容
例:
@Retention(RetentionPolicy.Runtime) @Target({ElementType.TYPE,ElementType.METHOD}) @Documented public @interface TestData{ /** * 暂时没用 * @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.Class | jvm加载时丢弃,包含在类文件中,默认值 |
| RetentionPolicy.Source | 编译时被丢弃,不包含在类文件中 |
@Doucument:指注解的元素可以被javadoc或类似的根据文档化
@Inherited:表明使用了@Inherited注解的元素,所标记的子类也拥有这个注解
自定义注解的示例
@RequestMapping(value = "/test") @TestData(pageComponent = "download/test") public ModelAndView test(HttpServletRequest request) { return super.test(request,"测试"); }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


