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

  • 相关阅读:
    c#遍历一个对象中所有的属性和值
    Redis和Memchaed缓存数据查询
    ASP.NET结合Redis实现分布式缓存
    C#使用Spire.Doc Word for .Net读写Word
    DataTable序列化
    ASP.NET网站不能在VS中调试
    winform窗体运行时的大小和设计时不一致
    ajax请求aspx.cs后台方法
    jQuery判断鼠标滚动方向
    使用MagickNet编辑图片
  • 原文地址:https://www.cnblogs.com/Jeely/p/11113856.html
Copyright © 2020-2023  润新知