1.概念
   控制权的转移,应用程序本身不负责依赖对象的创建和维护,而是由外部容器负责创建和维护
						  简而言之:
							    把本身可以创建对象的权利交给IOC容器,当要实例化该对象的时候,由IOC容器来实例化该对象(专注于使用IOC创建的对象)
					2.目的
						  创建对象并且组装对象之间的关系
					3.步骤
						  1.Bean容器初始化
							  (即IOC容器加载beans的xml配置文件)
							   (加载并初始化配置文件<beans></beans>)
								    1.两个基础包
									      1.org.springframework.beans
										        1.BeanFactory提供配置结构和基础功能,加载并初始化Bean
									      2.org.springframework.context
										        2.ApplicationContext保存了Bean对象并在Spring中被广泛使用
								    2.ApplicationContext初始化方式
									      1.本地文件
									      2.Classpath
									      3.web应用中依赖servlet/Listener
						  2.配置
							    Spring容器的配置文件
								    <beans>
									    <bean id=“name”>对象路径</bean>
								    </beans> 
						  3.创建对象并调用
							    getBean(“id_name”)
					  4.IOC的实现方式
						   (向Spring IOC容器注入Bean容器,就是注入bean的方式)
						    1.DI(依赖注入)	
							      1.概念:
								        1.就是由IOC容器在运行期间,动态的将某种依赖关系注入到对象之中
								            (给属性赋值的关系;1.xml注入(设值、构造)2.注解注入(@Required。。。))
								      2.Spring注入是指在启动Spring容器加载bean配置的时候,完成对变量的赋值行为
									        简而言之:
            在IOC容器加载的过程中,会扫描xml文件的相关配置,然后,创建并实例化bean,
										            注入,就是在IOC创建bean的时候,给成员变量的赋值
								    2.两种注入方式
									      1.XML配置bean注入
										        (使用xml定义bean)
										        1.设置注入
											          语法:
												            <bean id="标识1" class="类路径1">
													            <property name="类路径1的私有属性" ref="标识2" />
												            </bean>
												            <bean id="标识2" class="类路径2">
												            </bean>
											          解释:
												            property中的name指向的是类路径1对象的私有属性,在IOC容器实例化bean对象的时候,
												            自动调用setName()的JavaBean方法,把ref引用的值赋予给属性
											          前提:
												            该类含有property中name的私有属性,并有该属性的setName()的JavaBean方法
										        2.构造注入
											          语法:
												            <bean id="标识1" class="类路径1">
													            <constructor-arg name="类路径1的私有属性" ref="标识2" />
												            </bean>
												            <bean id="标识2" class="类路径2">
												            </bean>
											          解释:
												            在IOC容器调用类路径1构造器生成实例的时候,把ref引用的值赋予该constructor-arg中的name属性	
											          前提:
												            该类含有constructor-arg中name的私有属性,并含有constructor-arg中name为参数的构造方法
										        3.延迟/懒加载
											          1.lazy_init,bean的一个参数
											          2.其值默认为default;当类注入到bean容器的时候,在Spring容器applicationContext实例化的时候,顺便生成的了
											          3.其值为true的时候,会开启懒人模式
											          4.当设置bean为原型的时候,懒加载无效
												            因为原型是在实例化的时候才有,不会随Spring容器applicationContext一同加载
										        4.scope
											          1.其值
												            singleton、prototype、request、session(后两个跟web工程有关)
										        5.生命周期
											          1.init-method、destroy-method都是自定义的两个方法
											          2.销毁方法的调用时,需要借助applicationContext.close();(applicationContext的接口)
										        6.Map
											          多个值注入
										        7.ref
											          1.引用其它的bean设值
											          2.两种形式
												            1.ref=“beanName”
												            2.自定义的就<ref bean="beanName"/>
原文:http://www.cnblogs.com/nanbrother/p/6895794.html