Java注解基础学习

注解是什么?
注解就是用来修饰数据的元数据,元数据是描述数据的数据,就比如电影:有主演,上映时间,电影类别等,用来表述这个电影,并不会对电影
本身造成影响,在我们查找电影时能够快速定位到这个电影,带来方便,这些都是用来修饰电影的。那么可以称这些属性是电影的注解。
注解能够给我们带来什么?
主要是可以省去xml配置,使用注解的形式来完成信息的配置。
例如:①使用JUnit使用 -@Test 来完成对方法的测试,不用再写main方法 了。
②Servlet3.0可以使用 -@WebServlet 来配置Servlet,代替了 的xml配置
③springMVC中使用注解代替配置很常见。
④使用注解可以完成对sql语句的编辑。

仿“@Test”注解的使用。
实际运行:在方法上加上“@Test”注解,就可以运行该方法。

自定义注解:
1.编写注解的语法:
a.注解使用@Interface Demo{} 定义,
b.注解中的属性可以是:基本数据类型,Class类型,enum,String,一维数组,annotation(注解类型),定义属性后面加()
c.特殊属性:value 当只存在一个value属性的时候,使用注解给其赋值的时候,可以省略value,按数据类型赋值。
d.修饰注解存在的时长 :@Retention(RetentionPolicy.RUNTIME)
源码阶段编译期:RESOURCE() 类加载进内存期:CLASS 运行期:RUNTIME
e.使用自定义注解,在声明注解时,在注解的上方使用 -@元注解。
J2SE5.0版本在 java.lang.annotation提供了四种元注解,专门注解其他的注解:
-@Documented —–注解是否将包含在JavaDoc中
-@Retention —-–什么时候使用该注解
—-@Retention(RetentionPolicy.SOURCE)【编译期,在编译阶段丢弃】
—-@Retention(RetentionPolicy.CLASS)【类加载期,进内存使用】
—-@Retention(RetentionPolicy.RUNTIME)【运行期】
-@Target —- @Target说明了Annotation所修饰的对象范围:注解用于什么地方
Annotation可被用于 packages、types(类、接口、枚举、Annotation类型)、类型成员(方法、构造方法、成员变量、枚举值)、
方法参数和本地变量(如循环变量、catch参数)。在Annotation类型的声明中使用了target可更加明晰其修饰的目标
ElementType是一个枚举类,枚举了一些字段值,包括METHOD,FIELD,CONSTRUCTOR等
ElementType.METHOD 指明此注解只能使用在方法上, 类型成员—方法、
ElementType.ANNOTATION_TYPE 另一个注释,Annotation类型
ElementType.TYPE 表示是可以用于注解类、接口(包括注解类型) 或enum声明
—@Inherited —–– 是否允许子类继承该注解,少见
2.自定义注解实现对一个方法的执行。(利用反射)
①编写注解annotation public @interface MyTest{}//没有给属性
②声明注解存在的时长,在运行时可以运行: @Retention(RetentionPolicy.RUNTIME)
③标注注解声明在方法上, @Target(ElementType.METHOD)表示此注解只使用在方法上
④编写一个类进行测试。使用注解
@Target(ElementType.METHOD)
public @interface MyTest{}
public class Test{
@MyTest//该注解写在方法上
public void fun(){
}
}
⑤再编写一个类,用于实现这个注解
public class Runn{
public static void main(String[] args){
//获取该测试类的Class对象,获取所有的方法,遍历判断是否存在注解,存在就执行此方法。
Class clazz = Test.class;
Method[] methods = clazz.getMerhods();
isAnnotationPresent
for(Method method:methods){
if(method.isAnnotationPresent(MyTest.class)){//MyTest为 @interface:注解
method.invoke(clazz.newInstance(),null);//该方法没有参数
}
}
}
}
基础详情见博客:
http://blog.csdn.net/duo2005duo/article/details/50505884

问题:使用注解是怎样完成对xml文件的代替呢?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值