注解的应用

                                                                                               注解的应用

               公司项目需求,自己做一个对HBase应用ORM思想,封装DAO,应用到注解。这里复习一下注解的使用。

1.注解的定义::注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。

作用分类:
①编写文档:通过代码里标识的元数据生成文档【生成文档doc文档】
② 代码分析:通过代码里标识的元数据对代码进行分析【使用反射】
③编译检查:通过代码里标识的元数据让编译器能够实现基本的编译检查【Override】

比较重要的是下一个知识点自定义注解:
我们需要将它声明为@interface,如下例:
@Target 是说明注解应用的场景,@Retention是说明注解在什么级别上报存
public @interface 注解名

自己测试一下注解的使用:
    随便写了一个自定义的注解,这个注解时类注解
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface TestAnntation {
	 /**
     * Default family name.
     * 
     * @return default family.
     */
    public String defaultFamily() default "abc";
}
测试类代码:
@TestAnntation
public class Test {
	public static void main(String[] args) {
	    name();
	}
	
	public static void name() {
		 Test test = new Test();
		 TestAnntation ta  = (test.getClass()).getAnnotation(TestAnntation.class);
		 if (ta!=null) {
			
			 System.out.println(ta.defaultFamily());
		}
}
}
输出结果是:abc

下面是属性注解的使用:
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface TestAnntation {
	 /**
     * Default family name.
     * 
     * @return default family.
     */
    public String defaultFamily() default "abc";
}
测试类代码:
public class Test {
	@TestAnntation
	private String nameString;
	
	public static void main(String[] args) {
		 Test test = new Test();
		 Field[] fields = test.getClass().getDeclaredFields();
	    name(fields[0]);
	}
	
	public static void name(Field field) {
		
		 TestAnntation ta  = field.getAnnotation(TestAnntation.class);
		 if (ta!=null) {
			
			 System.out.println(ta.defaultFamily());
		}
}
}

为什么使用注解:
“对类,方法,属性进行的一种标示,一种注释
(注意,这个里注释不是为了让我们开发或维护人员阅读更方便,而是为JVM看呢),通过这些标示,Java虚拟机可以完成这些标示对应的功能。”

使用注解和配置文件的优缺点:

什么时候用xml
        1.外部jar包依赖bean配置
        2.用注解无法实现,或者用注解无法轻易实现的情形
        3.项目组内部达成一致的约定的地方
        4.特殊的配置(如:定义一个map)

        优:容易编辑,配置比较集中,方便修改,在大业务量的系统里面,通过xml配置会方便后人理解整个系统的架构
        缺:比较繁琐,类型不安全,配置形态丑陋,配置文件过多的时候难以管理

什么时候用注解
        除了上面4点,其他情况都可以用

        优:方便,简洁,配置信息和 Java 代码放在一起,有助于增强程序的内聚性。
        缺:分散到各个class文件中,所以不宜维护
       


  


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值