Spring笔记:解决构造器歧义

若使用构造器注入,则需要注意配置时指明指定参数的类型和索引。

比如有两个构造器,若在配置的时候不指明参数类型和参数索引,则spring会默认找到它认为合适的构造函数,而这往往不是我们所期望的:

private String prefix; //前缀
    
    private String suffix; //后缀
    
    private int initial; //初始
    
    private int counter;
    
    //构造函数1
    public SequenceGenerator(String prefix,String suffix){
        this.prefix = prefix;
        this.suffix = suffix;
    }
    
    //构造函数2
    public SequenceGenerator(String prefix,int initial){
        this.prefix = prefix;
        this.initial = initial;
        
    }

配置Bean时指明type和index,就不容易导致歧义了:

<bean id="sequenceGenerator" class="chapter3_2.SequenceGenerator">
<constructor-arg value="p" type="java.lang.String" index="0" /> <constructor-arg value="10" type="int" index="1"/> <property name="suffix" value="A" />

</bean>

 

 

 

posted @ 2013-03-30 20:01  爱生活者wmmang  Views(133)  Comments(0Edit  收藏  举报