我是 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/