目录
1、什么是IOC?
控制反转:
将对象实例化的过程交给外部容器IOC来实现。
依赖注入:
属性赋值的操作
2、什么是懒加载?
bean标签下的lazy-init属性
为true时,是懒加载,表示只有使用这个对象时,才会实例化对象
为false,不懒加载,创建bean对象时,自动实例化,放入单例缓存池(默认)
3、不懒加载的好处?
1、不懒加载时,bean对象放在单例缓存池中,随用随取,提高运行效率
2、编程时发现配置问题
4、bean对象都是单例吗?
默认是单例的,bean标签中使用scope属性,可以设置为单例和原型
scope="singleton" 单例,每次调用bean对象都是同一个,入单例缓存池
scope="prototype" 原型,每次调用bean对象都是一个全新的,不入单例缓存池
5、什么对象适合是单例对象
对于无状态或者状态不变化的,适合作为单例
对象状态的改变是由成员变量的属性值改变而改变的。
所有不存在改变状态的成员变量,或者状态不变的,适合作为单例对象
6、bean对象的初始化
1、通过bean标签的init-method属性完成
2、实现org.springframework.beans.factory.InitializingBean接口,重写afterPropertiesSet方法
7、bean对象的销毁
步骤1、bean标签使用destroy-method属性
步骤2、通过AbstractApplicationContext对象,调用close()方法销毁