zoukankan      html  css  js  c++  java
  • spring

     1、使用构造子注入时,则使用constructor-arg子标签,来指定构造函数的参数。   

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

        <constructor-arg>   

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

        </constructor-arg>   

    </bean>   

    2、当构造函数有多个参数时,可以使用constructor-arg标签的index属性,index属性的值从0开始。   

    <bean id="provider" class="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>   

    3、 在使用构造子注入时,需要注意的问题是要避免构造子冲突的情况发生。考虑下面的情况:   

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    public class ConstructorConfusion {  
     
    public ConstructorConfusion(String someValue) {  
     
            System.out.println("ConstructorConfusion(String) called");  
     
        }  
     
    public ConstructorConfusion(int someValue) {  
     
            System.out.println("ConstructorConfusion(int) called");  
     
        }  
     
    }  

     使用如下配置文件   

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

        <constructor-arg>   

            <value>90</value>   

        </constructor-arg>   

    </bean>   

      那 么,当实例化组件constructorConfusion时,将输出ConstructorConfusion(String) called,也就是 说参数类型为String的构造函数被调用了,这显然不符合我们的要求。为了让Spring调用参数为int的构造函数来实例化组件 constructorConfusion,我们需要在配置文件中明确的告诉Spring,需要使用哪个构造函数,这需要使用constructor- arg的type属性。   

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

        <constructor-arg type="int">   

            <value>90</value>   

        </constructor-arg>   

    </bean>  

  • 相关阅读:
    mysql合并数据
    java协变类型返回
    OSI网络七层模型理解
    mysql性能优化学习
    redis lock 和 tryLock 实际使用区别
    多字段关联同一张表
    第一个Mabits程序
    Mybatis使用Map来实现传递多个参数及Mybati实现模糊查询
    使用Mybatis框架的步骤
    sql小技巧
  • 原文地址:https://www.cnblogs.com/Jeely/p/11113856.html
Copyright © 2011-2022 走看看