自定义注解Permission类,Java中Target注解与Retention注解说明
flypeng 发布时间:10-19 来源:鹏鹏编程网 浏览:14次

注解和xml一样只是起到一个配置的作用。注解的本身是不可能完成这种拦截功能的。我们后面会通过注册一个驱动了去解析这个注解,完成这个注解背后所代表的功能。

新建注解:

public @interface Permission {

 

}

 

我们这个项目是通过两个属性来代表这个权限的,所以我们这里也需要两个属性。

public @interface Permission {

    String module();

    String privilege();

}

标注@Retention

通过这个注解来表标注:这个注解的配置在这个java类中的存放的范围,比如:

@Retention(RetentionPolicy.SOURCE)
只能保留在源代码上面,一但被编译成class之后这个注解就会丢失

@Retention(RetentionPolicy.CLASS)

在源代码中和编译过后的class中都回存在这个注解,但是当这个类被装载进java虚拟机后,这个注解就会丢失了

@Retention(RetentionPolicy.RUNTIME)

代表这个注解要保留至运行期

所以我们这里一定要标注为运行期

@Retention(RetentionPolicy.RUNTIME)

public @interface Permission {

    String module();

    String privilege();

}

@Target

用来标识这个注解他可以标注在什么地方。

@Target({ElementType.FIELD})

可以标注在字段上面

@Target({ElementType.FIELD,ElementType.METHOD})

也可以标注在方法上面

@Target({ElementType.FIELD,ElementType.METHOD,ElementType.TYPE})

也可以标注在类型上面

我们这里只需标注在方法上面就可以了:

@Retention(RetentionPolicy.RUNTIME)

@Target({ElementType.METHOD})

public @interface Permission {

      String module();

      String privilege();

}

如果你有好的win10资讯或者win10教程,以及win10相关的问题想要获得win10系统下载的关注与报道。
欢迎加入发送邮件到657025171#qq.com(#替换为@)。期待你的好消息!