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>