zoukankan      html  css  js  c++  java
  • Spring框架中<constructor-arg>与<property>理解

    配置文件的根元素是beans,每个组件使用bean元素来定义,bean元素可以有许多属性,其中有两个是必须的:id和class。id表示组件的默认名称,class表示组件的类型。

    1. 依赖注入的方式:  constructor-arg:通过构造函数注入。   property:通过setxx方法注入。
    2.  设值注入,使用property子标签:

      <bean id="renderer" class="com.apress.prospring.ch2.StandardOutMessageRenderer">                       <property name="messageProvider">           

      <ref local="provider"/>       

      </property>   

      </bean>   

    3.  构造子注入,使用constructor-arg子标签:

      <bean id="provider"class="com.apress.prospring.ch4.ConfigurableMessageProvider">       <constructor-arg>           

      <value>This is a configurable message</value>       

      </constructor-arg>   

      </bean>   

    4.  使用constructor-arg标签的index属性,对应于构造函数的多个参数,index属性的值从0开始。   

      <bean id="provider" lass="com.apress.prospring.ch4.ConfigurableMessageProvider">       <constructor-arg index="0">           

      <value>first parameter</value>       

      </constructor-arg>       

      <constructor-arg index="1">           

      <value>second parameter</value>       

      </constructor-arg>     

      </bean>   

    5. 使用constructor-arg的type属性,避免构造子冲突:

      <bean id="constructorConfusion" class="com.apress.prospring.ch4.ConstructorConfusion">       

      <constructor-arg type="int">           

      <value>90</value>       

      </constructor-arg>   

      </bean>   

      public class ConstructorConfusion {

            public ConstructorConfusion(String someValue) {

                 System.out.println("ConstructorConfusion(String) called");

             }

             public ConstructorConfusion(int someValue) {

                 System.out.println("ConstructorConfusion(int) called");

             }

      }

    6.  

      注入集合属性,使用list,map,set和props标签,分别对应List,Map,Set和Properties:

      <bean id="injectCollection" class="com.apress.prospring.ch4.CollectionInjection">

             <property name="map">

                 <map>

                     <entry key="someValue">

                         <value>Hello World!</value>

                     </entry>

                     <entry key="someBean">

                         <ref local="oracle"/>

                      </entry>

                 </map>

             </property>

             <property name="props">

                 <props>

                     <prop key="firstName">

                         Rob

                     </prop>

                     <prop key="secondName">

                         Harrop

                     </prop>

                 </props>

             </property>

             <property name="set">

                 <set>

                     <value>Hello World!</value>

                     <ref local="oracle"/>

                 </set>

             </property>

             <property name="list">

                 <list>

                     <value>Hello World!</value>

                     <ref local="oracle"/>

                  </list>

             </property>

         </bean>  

  • 相关阅读:
    css文档之盒模型阅读笔记
    《图解HTTP》阅读总结
    好博客-持续收藏中。。。
    Linux下Nagios的安装与配置
    在Linux上使用logwatch分析监控日志文件
    根据Request检测是否为移动端设备访问
    MyEclipse启动一直停留在Loading workbench界面上的处理
    使用JSONP进行跨域请求
    Page.java
    JsonUtil.java
  • 原文地址:https://www.cnblogs.com/-strong/p/7651912.html
Copyright © 2011-2022 走看看