依赖注入:DI(dependency import)给对象的属性赋值
第一种方法给对象属性赋值:
这样在刚启动spring框架时,就调用对象的有参构造而不是无参构造了
<?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/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <bean id="test1" class="cn.java.ioc1.YelloMouseWolf" > <!-- constructor-arg:通过构造器给对象赋值,调用有参构造 index:方法中第几个属性 type:这个属性的类型 value:要给这个属性赋值的内容 --> <constructor-arg index="0" type="java.lang.String" value="tom"></constructor-arg> <constructor-arg index="1" type="java.lang.Integer" value="2"></constructor-arg> <constructor-arg index="2" type="java.lang.Float" value="2.5"></constructor-arg> </bean> </beans>
第二种方法赋值:
通过setter getter。开启框架调用的是无参构造。
<?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/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <bean id="test1" class="cn.java.ioc1.YelloMouseWolf" > <!-- property:通过setter getter赋值(开启框架会调用无参构造) name:属性名 value:属性的值 --> <property name="name" value="jack"></property> <property name="age" value="10"></property> <property name="weight" value="2.5"></property> </bean> </beans>
总结:什么是DI?
DI是依赖注入,给对象赋值。有两种方法赋值。
一种是利用构造器,启动框架会调用有参构造。
一种是利用set get赋值,启动框架会调用无参构造。
通过DI中的get/set方式给对象的list、set、map、properties(配置文件)属性赋值