Java工厂构造函数参数,java – 构造函数参数解析

我最近开始在3.2版本上工作.我试图理解构造函数参数解析,以防何时通过构造函数注入传递依赖项.我创建了以下示例.

package com.springinaction.springidol;

public interface Performer {

void perform();

}

package com.springinaction.springidol;

public class Juggler implements Performer {

private int beanBags=3;

private String name;

public Juggler(){

}

public Juggler(String name,int beanBags){

System.out.println("First constructor gets called");

this.beanBags=beanBags;

this.name=name;

}

public Juggler(int beanBags,String name){

System.out.println("Second constructor gets called");

this.beanBags=beanBags;

this.name=name;

}

public void perform(){

System.out.println("JUGGLING "+beanBags+name+" BEANBAGS");

}

}

请查看下面我使用的spring配置文件的实例.

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

在上面的场景中,调用的构造函数是第一个构造函数.但之后我稍微更改了xml文件并为两个参数添加了type属性.

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

在上面的例子中,spring调用的构造函数是第二个构造函数.我不明白为什么spring决定调用第二个构造函数而不是第一个构造函数?在上面的例子中,当我们传递type属性时spring如何决定调用哪个构造函数?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值