1.1、bean对象创建的细节
1) 对象创建: 单例/多例
* scope="singleton", 默认值, 即 默认是单例 【service/dao/工具类】
* scope="prototype", 多例; 【Action对象】
2) 什么时候创建?
* scope="prototype" 在用到对象的时候,才创建对象。
* scope="singleton" 在启动(容器初始化之前), 就已经创建了bean,且整个应用只有一个。
3)是否延迟创建(懒加载)
* lazy-init="false" 默认为false, 不延迟创建,即在启动时候就创建对象
* lazy-init="true" 延迟初始化, 在用到对象的时候才创建对象
* (只对单例有效)
设置懒加载有两种方式:
1、 全局懒加载,可以在*.xml文件的<beans>下配置default-lazy-init="true"
2、 如果只想设置某一个<bean>为懒加载,可以在<bean>里面配置lazy-init="true"
2.2、SpringIOC容器
SpringIOC容器,是spring核心内容。
作用: 创建对象 & 处理对象的依赖关系
IOC容器创建对象:
创建对象, 有几种方式:
1) 调用无参数构造器
2) 带参数构造器
3) 工厂创建对象
工厂类,静态方法创建对象
工厂类,非静态方法创建对象
代码示例:
1、导包
2、配置applicationContext.xml / bean.xml文件
实体类User
工厂类
测试代码
测试结果:
1、默认无参数构造器
输出:
------User对象创建【无参数构造器】------
2、带参数构造器
输出:
------User对象创建【无参数构造器】------
User [id=100, name=Jack]