1. 屬性注入(最常用的方式)
1.1. 通過 setter 方法注入Bean 的屬性值或依賴的對象
1.2. 使用<property>元素, 使用 name 屬性指定 Bean 的屬性名稱,value 屬性或 <value> 子節(jié) 點(diǎn)指定屬性值
<bean id="hq1" class="com.chai.demo1.HelloSpring">
<!--
注意:name屬性的值 為當(dāng)前類中setter方法的名稱。
setName2(String name) 假如方法叫setName2 那么name="name2" 也應(yīng)該填寫name2
-->
<property name="name" value="你好..."></property>
</bean>
2. 構(gòu)造器注入
2.1 通過構(gòu)造方法注入Bean 的屬性值或依賴的對象,它保證了 Bean 實(shí)例在實(shí)例化后就可以使用
2.2 構(gòu)造器注入在 <constructor-arg> 元素里聲明屬性, <constructor-arg> 中沒有 name 屬性
<bean id="p1" class="com.chai.lesson2.Person" scope="prototype">
<constructor-arg value="小李" index="0"></constructor-arg>
<constructor-arg value="18"></constructor-arg>
</bean>
<bean id="p2" class="com.chai.lesson2.Person">
<constructor-arg value="jack" index="0"></constructor-arg>
<constructor-arg type="int">
<value>14</value>
</constructor-arg>
</bean>
Tip:
- value:表示你要注入的屬性的值
- index 表示參數(shù)下標(biāo)
- type 指定類型
- scope 屬性(表示bean的作用域) 可以通過執(zhí)行springIOC容器來創(chuàng)建對象 的類型
- prototype 原型模式(多例模式) 每次調(diào)用IOC容器的getBean方法,就會(huì)返回一個(gè)新的對象(地址)
- singleton 單例模式 每次調(diào)用都會(huì)返回同一個(gè)對象