Java 为什么即使提供了参数,Springbeans也会运行默认构造函数?
我是春天的新手。我创建了一个带有默认构造函数和两个参数的类。我在bean xml文件中定义了它。但当我运行应用程序时,它仍然运行默认构造函数,而不是带有参数的构造函数。我找不到我做错了什么。代码如下: ConstructorArgsApp.java Organization.java beans-cp.xmlJava 为什么即使提供了参数,Springbeans也会运行默认构造函数?,java,spring,dependency-injection,inversion-of-control,spring-bean,Java,Spring,Dependency Injection,Inversion Of Control,Spring Bean,我是春天的新手。我创建了一个带有默认构造函数和两个参数的类。我在bean xml文件中定义了它。但当我运行应用程序时,它仍然运行默认构造函数,而不是带有参数的构造函数。我找不到我做错了什么。代码如下: ConstructorArgsApp.java Organization.java beans-cp.xml 使用ClassPathXmlApplicationContext时,将加载目录资源下的beans.xml。如果该文件存在于其他任何位置,则不会加载该文件请尝试@jens未工作使用索引属
使用ClassPathXmlApplicationContext时,将加载目录资源下的beans.xml。如果该文件存在于其他任何位置,则不会加载该文件请尝试
@jens未工作使用索引属性@mprabhat未工作您是否有重复的beans-cp.xml?我刚刚运行了您的代码,它正确地打印了带有参数的对象。此外,你为什么说它不起作用?事实索引甚至不需要它来工作。
package com.kirancyrusken.springDemo;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class ConstructorArgsApp {
public static void main(String[] args) {
//1. Create ApplicationContext
ApplicationContext ctx = new ClassPathXmlApplicationContext("beans-cp.xml");
//2 Create the bean
Organization org = (Organization) ctx.getBean("myorg");
//3. invoke the company slogan the bean
org.corporateSlogan();
System.out.println(org);
//4. Close the application Context (container)
((ClassPathXmlApplicationContext) ctx).close();
}
}
package com.kirancyrusken.springDemo;
public class Organization {
private String companyName;
private int yearOfIncorporation;
public Organization() {
}
public Organization(String companyName, int yearOfIncorporation) {
this.companyName = companyName;
this.yearOfIncorporation = yearOfIncorporation;
}
public void corporateSlogan() {
String slogan = "We build the ultimate driving machines";
System.out.println(slogan);
}
@Override
public String toString() {
return "Organization [companyName=" + companyName + ", yearOfIncorporation=" + yearOfIncorporation + "]";
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
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.xsd">
<bean id="myorg"
class="com.kirancyrusken.springDemo.Organization">
<constructor-arg value="BMW"></constructor-arg>
<constructor-arg value="1929"></constructor-arg>
</bean>