IOC创建对象的方式
* IOC是默认使用类的无参构造创建对象的,如果在类中写了有参构造,而又没有显性得到定义无参构造方法,那么程序就会报错,初始化失败。
使用无参构造哈函数创建对象的时候,当注入bean成功后,对象就已经被实例化了。
* IOC也可以通过有参构造函数创建对象,有三种方式。
- 第一种方式 通过有参构造函数的形式参数下标来匹配赋值 index=0 代表形参的第一个参数, index=1 代表形参的第二个参数
<constructor-arg index="0" value="施歌"/>
- 第二种方式 通过有参构造函数的形式参数列表中的数据类型来匹配赋值 例如:形参中有String 那么type类型就写String,有int Type就写int
<constructor-arg type="java.lang.String" value="施歌"/>
- 第三种方式 通过有参构造函数的形式参数名进行匹配赋值
> 只有一个参数:<constructor-arg name="name" value="施歌"/>
> 多个参数ref:先赋值,再引用
<bean id="name" class="java.lang.String">
<constructor-arg value="施歌"/>
</bean>
<bean id="user" class="com.shi.pojo.User">
<constructor-arg ref="name" />
<constructor-arg value="18"/>
</bean>
* 再beans.xml配置文件加载的时候,容器(ApplicationContext)中管理的对象就已经初始化了。