声明Student对象
注入:就是赋值的意思
简单类型:spring中规定Java中的基本数据类型(以及包装类)和String都是简单数据类型
di:给属性赋值
1.set注入(设值注入):spring调用类的set方法,可以在set方法中完成属性赋值
1)简单类型的set注入
<bean id="xx" class="yyy">
<property name="属性名字" value="此属性的值"/>
一个property只能给一个属性赋值 多个属性需要多个property赋值
</bean>
2)引用类型的set注入:spring调用类的set方法
<bean id="xxx" class="yyy">
<property name="属性名称" ref="bean的id(对象的名称)" />
</bean>
3)构造注入:spring调用有参构造方法,在创建对象的同时,在构造方法中给属性赋值。
构造注入使用:<constructor-arg> 标签
<constructor-arg> 标签:一个<constructor-arg>表示构造方法的一个参数。
<constructor-arg> 标签属性:
name: 表示构造方法的形参名
index:表示构造方法的参数的位置,参数从左往右的位置是0,1,2的顺序
value:构造方法的形参类型是简单类型,使用value
ref:构造方法的形参类型是引用类型的,使用ref
<bean id="myStudent" class="com.chen.ba03.Student">
<constructor-arg name="name" value="张三" />
<constructor-arg name="age" value="20" />
<constructor-arg name="school" ref="mySchool" />
</bean>
<bean id="myStudent2" class="com.chen.ba03.Student">
<constructor-arg index="0" value="李四"/>
<constructor-arg index="1" value="21"/>
<constructor-arg index="2" ref="mySchool"/>
</bean>
<bean id="myStudent3" class="com.chen.ba03.Student">
<constructor-arg value="王五"/>
<constructor-arg value="18"/>
<constructor-arg ref="mySchool"/>
</bean>
<bean id="myFile" class="java.io.File">
<constructor-arg name="parent" value="D:\java\IDEAwork\spring-course\ch01-hello-spring\readme.md" />
<constructor-arg name="child" value="readme.md" />
</bean>
<bean id="mySchool" class="com.chen.ba03.School">
<property name="name" value="清华大学" />
<property name="address" value="北京" />
</bean>