理解注解:
注解相当于一种标记,在程序中加了注解就等于为程序打上了某种标记,没加,则等于没有某种标记,以后,javac编译器,开发工具和其他程序可以用反射来了解你的类及各种元素上有无何种标记,看你有什么标记,就去干相应的事。标记可以加在包,类,字段,方法,方法的参数以及局部变量上。
注解语法:
@注解名称
jdk中的元注解:
元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的元注解(meta-annotation)类型
1,@Target
说明注解使用的范围
2,@Retention
说明注解保留时间的长短
3,@Inherited
4,@Documented
标记注解:没有任何属性的注解称呼为标记注解 eg: @Override @Deprecated
自定义注解:
自定义注解语法:
用@interface修饰
注解元素定义
类型 名称() default 默认值; 例如:String value() default "";
注意:注解的元素必须要有值,所以我们在定义注解元素时经常使用空字符串 0作为默认值。
注意:如果没有注解处理信息流程,自定义的注解没有任何意义。
使用注解:
需要使用到反射的知识,如果不懂请参考 java反射 http://wangshirufeng.iteye.com/blog/2286341
Class clazz = Class.forName("com.xxx.xxx.类名"); //获得指定类上面的所有注解 clazz.getAnnotations(); //获得指定类上面的名称为“annotationX”的注解 clazz.getAnnotation(annotationX.class); Field 也有上面两个方法可以获得字段上的注解 Field field = clazz.getField("字段名"); //获得指定字段上面的所有注解 field.getAnnotations(); //获得指定字段上面的名称为“annotationX”的注解 field.getAnnotation(annotationX.class);
常见的注解说明:
@SuppressWarnings 压制警告
@Scope Spring 管理注入对象的生命周期,默认是单例(singleton),也可以配置成多例(prototype),
理解使用自定义注解加反射实现数据权限控制的功能。