由上文----Spring的深入理解可以知道,Sring中三大核心组件有哪些,它们的作用是什么。
现在我们来看一下Spring中重要的两个概念:Spring IOC容器与Spring AOP编程思想。
1.什么是IOC容器
举一个例子,把IOC容器比作一个箱子,这个箱子里又球的子模,可以用这些模子来很多种不同的球,还有一个造这些球模的机器,这个机器可以产生球模。对应的关系就是:BeanFactory是那个造球模的机器,球模就是Bean,而球模造出来的球就是Bean的实例。
2.IOC怎么使用
我们使用Spring必须要构建IOC容器,没有它Spring无法工作,ApplicationContext.xml就是IOC容器的默认配置文件,Spring的所有特性功能都是基于这个IOC容器工作的。
大致过程:
1.读取配置文件
2.遍历处理配置文件,得到beanPath(对象的全路径名)
3.通过反射获取到对象,并存入bean容器
4.当需要某个对象的时候,就去调用getBean(String beanName)注入对象。
IoC的一个重点是在系统运行中,动态的向某个对象提供它所需要的其他对象。这一点是通过DI(Dependency Injection,依赖注入)来实现的。比如对象A需要操作数据库,以前我们总是要在A中自己编写代码来获得一个Connection对象,有了 spring我们就只需要告诉spring,A中需要一个Connection,至于这个Connection怎么构造,何时构造,A不需要知道。在系统运行时,spring会在适当的时候制造一个Connection,然后像打针一样,注射到A当中,这样就完成了对各个对象之间关系的控制。A需要依赖 Connection才能正常运行,而这个Connection是由spring注入到A中的,依赖注入的名字就这么来的。那么DI是如何实现的呢? Java 1.3之后一个重要特征是反射(reflection),它允许程序在运行的时候动态的生成对象、执行对象的方法、改变对象的属性,spring就是通过反射来实现注入的。
以上内容来自博客-----------Spring IOC的原理解析