Spring Ioc

概念

  • Ioc:本来由应用程序管理对象之间的依赖关系,现在交给了Spring Ioc容器,由spring来负责控制对象的生命周期和 对象间的关系,这个就是控制反转,Ioc的一个重点就是在系统运行时,动态的向某个对象提供它所需要的其他对象,这一点是通过DI注入的方式实现的

实现Ioc的主要的方式

  • IoC是一个很大的概念,可以用不同的方式来实现。主要的实现形式有两种:
  • 依赖查找:容器提供回调接口和上下文环境给组件。EJB和Apache Avalon都是使用这种方式。
  • 依赖注入:组件不做定位查询,只是提供普通的Java方法让容器去决定依赖关系。容器全权负责组件的装配,它会把符合依赖关系的对象通过JavaBean属性或者构造子传递给需要的对象。通过JavaBean属性注射依赖关系的做法称为设值方法注入(Setter Injection);将依赖关系作为构造子参数传入的做法称为构造子注入(Constructor Injection)
spring_2.jpg

Ioc的实现原理

  • 原理:DI是如何实现的呢? Java 1.3之后一个重要特征是反射(reflection),它允许程序在运行的时候动态的生成对象、执行对象的方法、改变对象的属性,spring就是通过反射来实现注入的。关于反射的相关资料请查阅java doc。

Ioc的好处

  • 大量减少Factory和Singleton的数量,使代码结构更加清晰,主要原我们不在查找、定位、创建和管理对象之间关系,全部交给Ioc容器管理
  • Spring的Ioc容器是一个轻量级的容器,没有侵入性,不需要依赖容器的API,也不需要实现一些特殊接口
  • 表面上看就少了几个new字,其实就是为了降低耦合度

参考来源

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 来源:关于Spring IOC (DI-依赖注入)你需要知道的一切作者:zejian Dao层(AccountDa...
    杨井阅读 5,372评论 0 27
  • Spring容器高层视图 Spring 启动时读取应用程序提供的Bean配置信息,并在Spring容器中生成一份相...
    Theriseof阅读 2,861评论 1 24
  • 1- IOC的概念 IOC:也即控制反转,DI即依赖注入,控制反转IOC和依赖注入DI其实就是同个概念的两个不同...
    zhanglbjames阅读 3,052评论 1 3
  • 序 “秦朗你个混蛋,也不放点水,或者让小爷我在我女朋友面前装个逼也行啊。”刘昊天向身旁大口喝着饮料的少年抱怨道。 ...
    飘逸如云阅读 347评论 7 6
  • 今天早上送儿子上学之后,我就想到学校对面胡同的早餐店吃米线。每次一提起米线,我就想到以前会议上领导说的,尽量少吃或...
    海天阳阅读 571评论 0 0