Android修炼之道—依赖注入 Dependency Injection

依赖注入(Dependency Injection)
Google Guice是一个轻量级的DI框架, Spring也是DI框架。
Spring 能有效地组织J2EE应用各层的对象。不管是控制层的Action对象,还是业务层的Service对象,还是持久层的DAO对象,都可在Spring的 管理下有机地协调、运行。Spring将各层的对象以松耦合的方式组织在一起,Action对象无须关心Service对象的具体实现,Service对 象无须关心持久层对象的具体实现,各层对象的调用完全面向接口。当系统需要重构时,代码的改写量将大大减少。

上面所说的一切都得宜于Spring的核心机制,依赖注入。
依赖注入(Dependency Injection)和控制反转(Inversion of Control)是同一个概念。

Spring会自动接管每个bean定义里的property元素定义。Spring会在执行无参数的构造器后、创建默认的bean实例后,调用对应 的setter方法为程序注入属性值。property定义的属性值将不再由该bean来主动创建、管理,而改为被动接收Spring的注入。

解除强依赖,把这种依赖的建立时间推后,从编译器推迟到运行时.
依赖注入(Dependency Injection):有接口注入(Interface Injection),设值注入(Setter Injection)和构造子注入(Constructor Injection)三种方式。

@Inject
      注解@Inject 标识了可注入的构造器、方法或字段。可以用于静态或实例成员。一个可注入的成员可以被任何访问修饰符(private、package- private、protected、public)修饰。注入顺序为构造器,字段,最后是方法。超类的字段、方法将优先于子类的字段、方法被注入。对于同一个类的字段是不区分注入顺序的,同一个类的方法亦同。
      可注入的构造器指的是标注了@Inject  并接受0 个或多个依赖作为实参的构造器。对于每一个类而言,@Inject 最多只允许对一个类的一个构造器进行标注:

可注入的字段:
    被@Inject 标注。
    不是final 的。
    可以使用任何有效名。   
可注入的方法:
    被@Inject 标注。
    不是abstract 的。
    没有声明类型参数的方法。
    可以带返回值。
    可以使用任何有效名。
    接受0 个或多个依赖作为实参。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值