对象依赖注入

Spring  对象依赖注入

使用构造器注入

使用属性setter方法注入

使用Field注入(用于注解方式)

注入依赖对象可以采用手工装配或自动装配,在实际应用中建议使用手工装配,因为自动装配会产生未知情况,开发人员无法预见最终的装配结果。

1.手工装配依赖对象

2.自动装配依赖对象

依赖注入--手工装配

手工装配依赖对象,在这种方式中又有两种编程方式

   *  在xml配置文件中,通过在bean节点下配置

   *  在java代码中使用@Autowired或@Resource注解方式进行装配

依赖注入--手工装配--XML方式

  <bean>元素的< property >子元素指明了使用它们的set方法来注入。可以注入任何东西,从基本类型到集合类,甚至是应用系统的bean。

通过setter方法注入依赖  *   简单bean配置

     配置bean的简单属性,基本数据类型和String。

<bean id="personService"   class="com.itcast.bean.impl.PersonServiceImpl">

   <!-- 基本类型,string类型 -->

  <property name="age" value="20"></property>    

<property name="name" value="张无忌"></property>      

     </bean>

通过setter方法注入依赖

 * 内部bean  

  <bean id="personService" class="com.itcast.bean.impl.PersonServiceImpl">  

        <!-- 内部bean注入 -->    

     <property name="personClass">    

         <bean class="com.itcast.bean.PersonClass" />          </propert>      </bean>

这种方式的缺点是你无法在其它地方重用这个personClass实例,原因是它是专门为personService而用。

通过setter方法注入依赖

 * 装配集合  

若bean的属性是集合类型,

按如下处理:   A、装配List和数组:    

<!-- 装配list -->

<property name="lists">  

          <list>    

            <value>list1</value>  

              <value>list2</value>  

              <ref bean="person"/>  

           </list>

</property>

<!-- 装配数组 -->  

       <property name="obj">  

         <list>        

        <value>obj1</value>      

          <value>obj2</value>  

              <ref bean="person"/>  

         </list>      

   </property>

通过setter方法注入依赖

 * 装配集合

 B、 装配set:

<!-- 装配set -->    

     <property name="sets">  

         <set>        

        <value>set1</value>      

          <value>set2</value>    

            <ref bean="person"/>      

     </set>      

   </property>

set使用方法和list一样,不同的是对象被装配到set中,而list是装配到 List或数组中装配

通过setter方法注入依赖

 * 装配集合

 C、 装配map:

<!-- 装配map-->

<property name="maps">  

           <map>  

                <entry key="01">      

                    <value>map01</value>    

              </entry>

                <entry key="02">    

                      <value>map02</value>

                  </entry>  

           </map>

</property>

map中的<entry>的数值和<list>以及<set>的一样,

可以使任何有效的属性元 素,需要注意的是key值必须是String的。

通过setter方法注入依赖 * 装配集合 D、装配Properties:

 <!--装配Properties  -->      

  <property name="props">  

         <props>      

       <prop key="01">prop1</prop>  

           <prop key="02">prop2</prop>  

         </props>    

    </property>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值