DI做用:由於IOC解除了程序間的依賴關係,因此DI就是weil維護程序間的依賴關係,稱:依賴注入java
優點: 能夠實現,在獲取某對象時,注入數據時必須的操做,不然對象沒法建立成功spring
弊端: 改變了bean對象的實例化方式,致使咱們在建立對象時,若是用不到這些屬性,也必須提供ide
<bean id="userService" class="com.xp.service.impl.UserServiceImpl"> <constructor-arg name="name" value="哈哈哈"></constructor-arg> <constructor-arg name="age" value="18"></constructor-arg> <constructor-arg name="date" ref="now"></constructor-arg> </bean> <bean id="now" class="java.util.Date"></bean>
一個constructor-arg標籤表明一個依賴函數
constructor-arg屬性:code
優點: 建立對象時沒有明確限制,能夠直接使用默認構造函數xml
弊端: 沒法實現讓某個屬性必須有值,則獲取對象是有可能set方法沒有執行對象
<bean id="userService" class="com.xp.service.impl.UserServiceImpl"> <property name="name" value="hhh"></property> <property name="age" value="17"></property> <property name="date" ref="now"></property> </bean> <bean id="now" class="java.util.Date"></bean>
經常使用:List,Array,Set,Map,Propertise索引
list,set,array標籤能夠混用,map和props標籤能夠混用,即結構相同,標籤能夠互換,因此,只須要記住兩個標籤便可io
<bean id="userDao" class="com.xp.dao.impl.UserDaoImpl"> <property name="myList"> <list> <value>213</value> <value>2513</value> <value>43</value> <value>2613</value> </list> </property> <property name="myStrs"> <array> <value>324</value> <value>324534</value> <value>25654</value> </array> </property> <property name="mySet"> <set> <value>23</value> <value>234</value> <value>235</value> <value>236</value> </set> </property> <property name="myMap"> <map> <entry key="3424" value="543534"> </entry> <entry key="3453"> <value>3453</value> </entry> </map> </property> <property name="myProps"> <props> <prop key="32243">fsdf</prop> <prop key="45">fsd</prop> <prop key="32543243">fsd</prop> </props> </property> </bean>