IoC is also known as dependency injection (DI). 这是一个过程?什么样的过程呢?对象自己定义它的依赖关系,这意味着,那些他们依赖的对象,只能通过构造函数参数,工厂方法参数或用set方法在它被创建出来后给予。Srping容器在创建这些对象的时候就注入这些依赖项。控制反转到底是什么东西呢?说白了其实就是以前我想吃饭,我需要自己找饭馆,自己找座位,自己下单子,最后才能吃上饭,现在呢?有了spring的容器,你就不需要去找了,要什么给什么,它都替你搞定,不需要四处找了,全给你包了,这就是控制反转。以前取决于你找没找到,现在取决于你要没要。

SpringIOC容器有两个基础包,哪两个基础包呢?org.springframework.beansorg.springframework.context packages

org.springframework.beans 这个包里边的factory子包下有个BeanFactory ,这个是个顶级接口,定义了一堆getBean方法

org.springframework.context 这包里边有个ApplicationContext ,它继承了两个接口ListableBeanFactory,和HierarchicalBeanFactory,这两个呢?都继承至BeanFactory

ApplicationContext 主要是干什么事情的呢?

1、更好地于AOP进行集成,这个没感受到,不会是假的吧?

2、信息资源处理,国际化?这个主要是因为ApplicationContext 还继承了另外一个接口吧,MessageSource 。

3、事件发布,这个是因为继承了ApplicationEventPublisher。

4、application-layer specific contexts such as the WebApplicationContext for use in web applications.这点指的是这个接口吧?ResourcePatternResolver

又总之了,BeanFactory 提供的是框架的基本配置和基本功能(基本功能有哪些呢?getBean、containsBean、isSingleton、isPrototype、isTypeMatch、getType、getAliases也就这7个基本功能);ApplicationContext 增加了更多的企业级开发功能,基本上就是一个BeanFactory的完全集,也是,继承了那么多接口,这个也是我们经常用到的。

在Spring中,对象是形成应用的基石,而哪些被spring容器管理的对象被称为beans,如果没被管理,那是不是不能称为bean呢?

一个bean是一个被spring容器管理的对象,从他被创建装配到销毁都要被spring容器管理。换句话说,一个bean只是你应用中众多对象中的一个,beans和他们之间的依赖关系,是由容器的元数据来展现的。

最新文章

  1. 【转】What is an SDET? Part 2 – Skill Matrix of SDET
  2. [转载]:fortran之format格式化输出总结
  3. 怒刷DP之 HDU 1069
  4. 对 APM 用户的一次真实调查分析(上)
  5. Hibernate的查询语言之HQL(一)——快速入门
  6. Golang Linux Shell编程(一)
  7. 监控glusterfs
  8. 在已经安装的nginx上,增加ssl模块
  9. usrp使用
  10. 潭州课堂25班:Ph201805201 第八课:函数基础和函数参数 (课堂笔记)
  11. 二分图最大匹配|UOJ#78|匈牙利算法|边表|Elena
  12. 【中文分词系列】 4. 基于双向LSTM的seq2seq字标注
  13. apt-get 命令加 autoclean clean autoremove 区别
  14. Sql Server数据库监听 c#代码
  15. 51nod算法马拉松28-a
  16. cv::Mat到YUV420的转换《转》
  17. 【翻译】JavaScript循环和作用域
  18. 从一道简单的dp题中学到的...
  19. lucene整理3 -- 排序、过滤、分词器
  20. HDU - 6096 处理后缀的字典树

热门文章

  1. insert into 和 where not exists
  2. SublimeText3常用快捷键和优秀插件(亲测)
  3. python字典按照value进行排序.bak
  4. testNG 学习笔记 Day 1 使用功能详解
  5. JavaMail直接发送邮件
  6. Qt5.3.2(VS2010)_调试_进入Qt源码
  7. [库][c++]tinyxml2使用小结
  8. HDU 6090 Rikka with Graph
  9. C# ref和out的本质
  10. Java实现日历小程序【代码】