Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么即使提供了参数,Springbeans也会运行默认构造函数?_Java_Spring_Dependency Injection_Inversion Of Control_Spring Bean - Fatal编程技术网

Java 为什么即使提供了参数,Springbeans也会运行默认构造函数?

Java 为什么即使提供了参数,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未工作使用索引属

我是春天的新手。我创建了一个带有默认构造函数和两个参数的类。我在bean xml文件中定义了它。但当我运行应用程序时,它仍然运行默认构造函数,而不是带有参数的构造函数。我找不到我做错了什么。代码如下:

ConstructorArgsApp.java

Organization.java

beans-cp.xml



使用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>