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>  

  • 相关阅读:
    1014 Waiting in Line (30)(30 point(s))
    1013 Battle Over Cities (25)(25 point(s))
    1012 The Best Rank (25)(25 point(s))
    1011 World Cup Betting (20)(20 point(s))
    1010 Radix (25)(25 point(s))
    1009 Product of Polynomials (25)(25 point(s))
    1008 Elevator (20)(20 point(s))
    1007 Maximum Subsequence Sum (25)(25 point(s))
    1006 Sign In and Sign Out (25)(25 point(s))
    1005 Spell It Right (20)(20 point(s))
  • 原文地址:https://www.cnblogs.com/Jeely/p/11113856.html
Copyright © 2011-2022 走看看