java - 无法在 Spring 中使用构造函数 Autowiring bean

标签 java spring

我是 Spring 的新手。我正在尝试使用 spring 使用构造函数 Autowiring 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();

}

}

我正在通过构造函数参数设置字段值之一。并且应该注入(inject)类。这里可能有什么问题?

错误日志显示

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?

最佳答案

位置似乎有两个参数:

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

关于java - 无法在 Spring 中使用构造函数 Autowiring bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44202860/

相关文章:

java - 刷新 JLabel 图标图像

java - 在命令行参数中给出特殊字符

java - 监控应用程序框架

java - 使用代码查找距离范围内的点(在数据库中存储一组纬度/经度)

java - Spring MVC 在提交之前检查数据库中的用户名

java - Jsp/Servlet Hello World 与 JBoss

java - Hystrix FallBack 不良实践

java - Spring 表达式语言 - Java 8 forEach 或列表中的流

java - 如何使用 Spring 表达式语言比较日期?

java - 是否可以在不使用任何shell的情况下编译并运行java?