簡體   English   中英

無法在Spring中使用構造函數自動裝配bean

[英]Not able to autowire a bean using constructor in Spring

我是春天新手。 我正在嘗試使用spring使用構造函數自動裝配bean。 這是代碼

<bean id="location" class="com.ibm.spring.Location">
    <constructor-arg name="pincode" value="110976"></constructor-arg>
</bean>

<bean id="address" class="com.ibm.spring.Address">
    <property name="id" value="2"></property>
    <property name="street" value="shahjahan"></property>
</bean>

位置等級

public class Location {

private Address address;
private String pincode;



public void setAddress(Address address) {
    this.address = address;
}

@Autowired
public Location(Address address, String pincode) {
    super();
    this.address = address;
    this.pincode = pincode;
}

public void getTotalAddress() {
    System.out.println(this.pincode + "::"+this.address);
}

}

地址類

public class Address {

private int id;
private String street;
public int getId() {
    return id;
}
public void setId(int id) {
    this.id = id;
}
public String getStreet() {
    return street;
}
public void setStreet(String street) {
    this.street = "Kkp";
}
@Override
public String toString() {
    return "Address [id=" + id + ", street=" + street + "]";
}

測試儀

 public class SpringTester {

public static void main(String[] args) {
    String configLoc = "com/ibm/spring/config/applicationContext.xml";
    ApplicationContext ctx = new ClassPathXmlApplicationContext(configLoc);
    Location l = (Location) ctx.getBean("location");
    l.getTotalAddress();

}

}

我通過構造函數arg設置了一個字段值。 和類應該注入。 這可能是什么問題?

錯誤日志說

Error creating bean with name 'location' defined in class path resource [com/ibm/spring/config/applicationContext.xml]: Unsatisfied dependency expressed through constructor parameter 0: Ambiguous argument values for parameter of type [com.ibm.spring.Address] - did you specify the correct bean references as arguments?

似乎Location有兩個參數:

<bean id="location" class="com.ibm.spring.Location">
    <constructor-arg name="pincode" value="110976"></constructor-arg>
     <constructor-arg ref="address"></constructor-arg>
</bean>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM