当前位置:   article > 正文

Spring——依赖注入(DI)_spring 依赖注入(di)

spring 依赖注入(di)

目录

1、构造器注入

默认使用无参构造注入

有参构造注入(推荐第一种)

2、Set注入(主要)

3、扩展方式注入

p命名空间注入

c命名空间注入


1、构造器注入

默认使用无参构造注入

  1. <bean id="hello" class="com.lys.pojo.Hello">
  2. <property name="str" value="Spring"/>
  3. </bean>

有参构造注入(推荐第一种)

  1. <!--第一种-->
  2. <beans>
  3. <bean id="beanOne" class="x.y.ThingOne">
  4. <constructor-arg name="bean" ref="beanTwo"/>
  5. <constructor-arg name="name" value="value"/>
  6. </bean>
  7. </beans>
  8. <!--第二种,通过类型创建,type表示参数类型-->
  9. <bean id="exampleBean" class="examples.ExampleBean">
  10. <constructor-arg type="int" value="7500000"/>
  11. <constructor-arg type="java.lang.String" value="42"/>
  12. </bean>
  13. <!--第三种,通过下标赋值创建,index=0表示第一个参数,1为第二个参数,依次类推-->
  14. <bean id="exampleBean" class="examples.ExampleBean">
  15. <constructor-arg index="0" value="7500000"/>
  16. <constructor-arg index="1" value="42"/>
  17. </bean>

2、Set注入(主要)

  1. <!--第一种,普通值注入,value-->
  2. <property name="name" value="lys"/>
  3. <!--第二种,Bean注入-->
  4. <property name="address" ref="Address"/>
  5. <!--数组注入,ref-->
  6. <property name="books">
  7. <array>
  8. <value>红楼梦</value>
  9. <value>西游记</value>
  10. <value>水浒传</value>
  11. <value>三国演义</value>
  12. </array>
  13. </property>
  14. <!--List注入-->
  15. <property name="hobbys">
  16. <list>
  17. <value>听歌</value>
  18. <value>敲代码</value>
  19. <value>看电影</value>
  20. </list>
  21. </property>
  22. <!--Map注入-->
  23. <property name="card">
  24. <map>
  25. <entry key="身份证" value="1381516546"/>
  26. <entry key="银行卡" value="13814545874546"/>
  27. </map>
  28. </property>
  29. <!--Set注入-->
  30. <property name="games">
  31. <set>
  32. <value>LOL</value>
  33. <value>COC</value>
  34. <value>BOB</value>
  35. </set>
  36. </property>
  37. <!--null注入-->
  38. <property name="wife">
  39. <null/>
  40. </property>
  41. <!--Properties注入-->
  42. <property name="info">
  43. <props>
  44. <prop key="driver">21564564654</prop>
  45. <prop key="url">adadad</prop>
  46. <prop key="username">小明</prop>
  47. <prop key="password">dsad4454</prop>
  48. </props>
  49. </property>

3、扩展方式注入

p命名空间注入

  1. <!--p命名空间注入,可以直接注入属性的值-->
  2. <bean id="user" class="com.lys.pojo.User" p:name="lys" p:age="18"/>

c命名空间注入

  1. <!--c命名空间注入,通过构造器注入:constructor-args;bean里必须有有参构造参数-->
  2. <bean id="user2" class="com.lys.pojo.User" c:age="18" c:name="lys"/>

PS:p命名空间和c命名空间不能直接使用,需要导入xml约束

p命名空间约束

 c命名空间约束

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/370477
推荐阅读
相关标签
  

闽ICP备14008679号