1,屬性注入;
2,構造函數注入;(通過類型;通過索引;聯合使用)
3,工廠方法注入;(非靜態工廠,靜態工廠)
4,泛型依賴注入;(Spring4 整合 Hibernate4 的時候順帶學)
詳細解釋
1,屬性注入;
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!--定義2個bean:lisi--><bean id="lisi" class="com.java1234.service.Lisi"></bean><bean id="javaWork" class="com.java1234.service.JavaWork"><property name="tester" ref="lisi"></property></bean>
</beans>
? ?這里就是一種對象注入? <property name="tester" ref="lisi"></property>
? ?如果對象有name的屬性,對value的設置【張三】就是屬性注入,代碼如下:
<bean id="people2" class="com.java1234.entity.People"> <property name="id" value="1"></property><property name="name" value="張三"></property><property name="age" value="11"></property> </bean>
2,構造函數注入;3種方式
(1:通過字段類型(type);2:通過字段順序(index);3:聯合使用(字段順序+字段類型))
<!-- 構造方法注入-字段類型--> <bean id="people3" class="com.java1234.entity.People"><constructor-arg type="int" value="2"></constructor-arg><constructor-arg type="String" value="李四"></constructor-arg><constructor-arg type="int" value="22"></constructor-arg> </bean> <!-- 構造方法注入-字段順序0,1,2 --> <bean id="people4" class="com.java1234.entity.People"><constructor-arg index="0" value="3"></constructor-arg><constructor-arg index="1" value="王五"></constructor-arg><constructor-arg index="2" value="55"></constructor-arg> </bean> <!-- 構造方法注入 ,字段順序+字段類型--> <bean id="people5" class="com.java1234.entity.People"><constructor-arg index="0" type="int" value="4"></constructor-arg><constructor-arg index="1" type="String" value="招六"></constructor-arg><constructor-arg index="2" type="int" value="66"></constructor-arg> </bean>
3,工廠方法注入;(非靜態工廠,靜態工廠)
3.1)非靜態工廠(factory-bean方式創建):
<bean id="peopleFactory" class="com.java1234.factory.PeopleFactory"></bean>
<bean id="people7" factory-bean="peopleFactory" factory-method="createPeople"></bean>
? ? ? <! -- 上面的peopleFactory是工廠bean,createPeople是工廠bean的方法-->
3.2)靜態工廠:( 所謂靜態,體現在由static修飾(類PeopleFactory2的)createPeople方法,又因為是static類型,可以直接使用類型(class="類的路徑XXXX")創建,可以不需要像非靜態工廠那樣還使用factory-bean)
<bean id="people8" class="com.java1234.factory.PeopleFactory2" factory-method="createPeople"></bean>
4,泛型依賴注入;(Spring4 的新功能 )