【反射/注解/依赖注入】
2018-02-24 本文已影响16人
小呀么小黄鸡
反射可以让我们在运行时获取类的属性,方法,构造方法、父类、接口等信息,通过反射还可以让我们在运行期实例化对象、调用方法、即使方法或属性是私有的也可以通过反射的形式调用。
注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK 1.5版本引入的一个特性,与类、接口、枚举是同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。
自定义注解
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface RequestAnnotation {
boolean withDialog() default true;
String withMessage() default "正在加载,请稍后...";
}
依赖注入(Dependency Injection):通过这个服务安全地将组件注入到应用程序中,在应用程序部署的时候还可以选择从特定的接口属性进行注入。(非自己主动初始化依赖,而通过外部来传入依赖的方式)
依赖注入的实现有多种途径,而在 Java 中,使用注解是最常用的。比如Butter Knife、Dagger这些依赖注入库,都是使用注解来实现依赖注入的。它利用 APT(Annotation Process Tool) 在编译时生成辅助类,这些类继承特定父类或实现特定接口,程序在运行时加载这些辅助类,调用相应接口完成依赖生成和注入。