Bean装配 注入参数 详解

来源:互联网 发布:2017淘宝怎么打造爆款 编辑:程序博客网 时间:2024/06/05 00:54

在Spring配置文件中,用户不但可以将String,int等字面值注入Bean中,还可以将集合,Map的类型的数据注入Bean中,此外还可以注入配置文件中其他定义的Bean.



字面值:一般是指可用字符串表示的值,这些值可以通过<value>元素标签进行注入。

举例:

<bean id="car" class="com/spring/test/Car">

    <property name="name">

       <value>奔驰</value>

   </property>

</bean>



引用其他Bean

Spring IOC容器中定义的Bean可以相互引用,

举例:

<bean id="car" class="com/spring/test/Car"></bean>

<bean id="boss" class="com/spring/test/Boss">

   <property name="car">

         <ref bean="car"></ref>

  </property

</bean>



说明:<ref>元素可以通过以下3个属性引用容器中的其他Bean

   bean:通过该属性可以引用同一容器或父容器的Bean,这是最常见的形式

   local:通过该属性只能引用同一配置文件中定义的Bean,它可以利用XML解析器自动检验引用的合法性,

   parent:引用父容器中的Bean,如<ref parent=“car”>的配置说明car的Bean是父容器中的Bean.


集合类型属性:

主要包括 List,Set,Map,Properties,   Spring为这些集合类型属性提供了专门的配置元素标签。


1  List

为Boss添加一个List类型的

public class Boss

{

  private List favorite = new ArrayList();

  public void setFavorite(List favorites)

  {

      this.favorites = favorites;

  } 

}


Spring中的配置片段:

<bean id="boss" class="com/spring/test/boss">

        <property name="favorites">

               <list>

                  <value>看报</value>

                   <value>赛车</value>

                   <value>喝水</value>

               </list>

        </property>

</bean>




2.Map

为Boss添加一个Map类型的Jobs属性

public class boss

{

         private Map jobs = new HashMap();

         public void setJobs(Map jobs)

        {

                this.jobs = jobs;

        }

       ............

}


Spring配置文件中的片断代码:

<bean id="boss" class="com/spring/test/boss">

          <property name="jobs">

               <map>

                       <entry>

                          <key><value>AM</value></key>

                         <value>会见客户</value>

                      </entry>


                       <entry>

                          <key><value>PM</value></key>

                         <value>公司内部会议</value>

                      </entry>

               </map>

          </property>

</bean>



假如某一Map元素的键和值都是对象,则可以采取以下的配置方式:

<entry>

     <key><ref bean="keyBean"/></key>

    <ref bean="valueBean"/>

</entry>



3.Properties

        Properties类型其实可以看出是Map类型的特例。Map元素的键和值可以是任何类型的对象,而Properties属性的键和值都只能是字符串。


举例:

public class boss

{

     private Properties mails = new Properties();


    public void setMails(Properties mails)

    {

         this.mails = mails;

    }

}


下面是:Spring配置文件的代码片段:

<bean id="boss" class="com/spring/test/boss">

          <property name="mails">

             <props>

                 <prop key="jobMail">john-office@smart.com</prop>

                 <prop key="lifeMail">john-life@smart.com</prop>

            </props>

         </property>

</bean>








原创粉丝点击