Spring IOC 容器(container):是指调用者只需负责从Spring容器中获取需要的对象,不关心对象的创建过程,也不关心该对象的依赖关系
以及对象是怎么组装的,也就是把创建对象控制权交给了Spring框架。
之前是手动创建创建BeanFactory对象,然后在进行创建bean对象
applictionContext继承了BeanFactory,还提供AOP的集成
public interface ApplicationContext extends EnvironmentCapable, ListableBeanFactory,
HierarchicalBeanFactory,MessageSource, ApplicationEventPublisher, ResourcePatternResolver {}
public interface ListableBeanFactory extends BeanFactory {}
以下是获取IOC容器中的bean对象的两种方式:
1.BeanFactory:有延迟初始化的特点,创建Spring容器对象的时候,不会立马创建bean对象,
而是等到从容器去获取该bean对象的时候才创建对象(懒加载:lazy)–见包testApplicationContent–applicationApp
2.ApplicationContext:创建Spring容器对象的时候 把容器中管理的bean立马初始化,
而不是等到获取该bean对象的时候才去初始化–见包testApplicationContent–applicationApp
在以后的开发中 我用到的ApplicationContext是比较多的,因为在服务器启动之后
对象在容器内都创建好了,谁要用,返回给谁就好了
ApplicationContext:有一个配置,使之也有延迟加载的作用。创建spring容器的时候,而没有获取到bean对象,就立马创建bean对象(相反就是懒加载),
在bean对象后面 有一个lazy-init的属性: 默认为defult,false,true//适用的单个bean–针对某一个bean对象
在beans中也有一个defult-lazy-init属性:默认为defult,false,true//适用所有的bean对象–针对Spring容器所有的bean对象
application-config.xml配置文件
//配置了全局的就没有必要针对单个bean做延迟加载操作
源码百度云盘自取:链接:https://pan.baidu.com/s/15vvVPrml-AA_fyO6ONXp5g 密码:z9uo