• 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>  

  • 相关阅读:
    单例模式
    SRM147 DIV2 950
    SRM147 DIV2 600
    SRM147 DIV2 250
    SRM147 DIV1 1000
    Python 实现字符串反转的9种方法
    ubtuntu redis 集群部署/搭建(官方原始方案)
    Python2 ValueError: chr() arg not in range(256) 解决办法?
    python 字典操作中has_key() 和 in 那个使用更加pythonic?
    Python库 使用filetype精确判断文件类型
  • 原文地址:https://www.cnblogs.com/Jeely/p/11113856.html
Copyright © 2020-2023  润新知