谈谈对Spring IoC/DI的理解


多读多写多记录,多学多练多思考。----------- Banana.Banuit Gang(香柚帮)


下面我来说一下个人对Spring的控制反转和依赖注入的理解,如有不足或者不正确的地方,希望大家及时帮我指出来,谢谢。

我们都知道Spring的两大核心就是IoC/DI和AOP,IoC的好处是进行对象之间的解耦,AOP的好处是进行模块或组件之间的解耦,也知道IoC的本质其实就是本来需要在客户端代码中new的对象,全部交给Spring进行管理,其中包括创建对象,自动装配,依赖管理等等,我的理解就是IoC控制反转这个概念贯穿了我们原本整个new对象的过程,我主要把这个过程分为了两部分:

  1. 注册过程:就是启动Spring容器之后,读取配置文件或者组件扫描,将所有相关的类都注册到Spring容器中。
  2. 注入过程:就是代码运行时需要哪个对象,Spring就会从容器中取出来(必须是注册过的类),将他注入到这个对象当中。

在这整个过程中,我们只需要专心于自己的业务逻辑,而不需要去操心什么时候去创建对象以及这个对象依赖于哪些对象,这些东西全部交给Spring容器去操心就好了,需要什么Spring容器会帮你注入什么,这样的话,对象与对象之间的依赖性就大大降低,达到了一个松耦合的状态,而且利用Spring IoC可以更方便的进行单元测试,比如说A依赖于B里边的某个方法,而这个方法需要进行数据库交互最终返回一个字符串,但是你的数据库又暂时没办法连接,这样的话就没有办法测试A,利用Spring IoC你可以直接在A里边注入一个字符串进行测试。

而对于DI这个概念,我认为他只是更加细致的描述了这个第二步的过程,把他命名为依赖注入。

上边是我个人对Spring IoC和DI的理解,下边贴出来一篇文章,感觉写的挺明白的。

http://sishuok.com/forum/blogPost/list/2427.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值