四.Spring4学习-----依赖注入DI
一.依赖注入—dependency Injection
依赖:指bean对象创建依赖于容器。Bean对象的依赖资源
注入:指bean对象依赖的资源由容器来设置和装配
DI(Dependency Injection) — IOC 的另一种表述方式:即组件以一些预先定义好的方式(例如: setter 方法)接受来自如容器的资源注入. 相对于 IOC 而言,这种表述更直接
二.Spring注入方式
1.构造器注入——Spring注入
通过构造方法注入Bean 的属性值或依赖的对象,它保证了 Bean 实例在实例化后就可以使用。
构造器注入在 <constructor-arg> 元素里声明属性, <constructor-arg> 中没有 name 属性
![20171010133559325][]
可详见上一讲IOC创建对象的三种方式:**http://blog.csdn.net/aoaoxiaoxian/article/details/78190623**
2.属性注入(setter注入)—— Spring注入
要求被注入的属性**必须有set方法。Set方法的方法名由set+属性首字母大写。如果属性是booolean没有get方法是is**。
1)常量注入
<bean id="student" class="cn.sxt.vo.Student"> <property name="name" value="张三丰"></property> </bean>
2)bean注入
<bean id="addr" class="cn.sxt.vo.Address"/> <bean id="student" class="cn.sxt.vo.Student"> <property name="name" value="张三丰"/> <property name="addr" ref="addr"/> </bean>
3)数组注入
<bean id="student" class="cn.sxt.vo.Student"> <property name="name" value="张三丰"/> <property name="addr" ref="addr"/> <property name="books"> <array> <value>傲慢与偏见</value> <value>仲夏夜之梦</value> <value>雾都孤儿</value> </array> </property> </bean>
4)List注入
<property name="hobbies"> <list> <value>羽毛球</value> <value>乒乓球</value> <value>玻璃球</value> <value>台球球</value> </list> </property>
5)Map注入
<property name="cards"> <map> <entry key="中国银行" value="149127348932174"/> <entry> <key><value>建设银行</value></key> <value>622710023478234234</value> </entry> </map> </property>
6)set注入
<property name="games"> <set> <value>lol</value> <value>dota</value> <value>cs1.6</value> <value>dnf</value> </set> </property>
7)Null注入
<property name="wife"><null/></property>
8)Properties注入
<property name="info"> <props> <prop key="学号">2015052601</prop> <prop key="sex">男</prop> <prop key="name">小明</prop> </props> </property>
9)p命名空间的注入
<!-- p命名空间注入 属性依然要设置set方法 --> <bean id="user" class="cn.sxt.vo.User" p:name="风清扬" p:age="230"/>
10)c命名空间注入
<!-- c命名空间注入要求有对应参数的构造方法 --> <bean id="u1" class="cn.sxt.vo.User" c:name="nico" c:age="16"/>
还没有评论,来说两句吧...