Почему Spring Beans запускает конструкторы по умолчанию, даже если предоставляются параметры? - PullRequest
0 голосов
/ 27 августа 2018

Я новичок в весне.Я создал класс с конструктором по умолчанию и двумя аргументами.Я определил это в XML-файле bean.Но все же, когда я запускаю приложение, оно запускает конструктор по умолчанию, а не конструктор с параметрами.Я не мог найти, что я делаю не так здесь.Вот код:

ConstructorArgsApp.java

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();
    }
}

Organization.java

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 + "]";
    }

}

beans-cp.xml

<?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>

1 Ответ

0 голосов
/ 27 августа 2018

При использовании ClassPathXmlApplicationContext загружается beans.xml в ресурсах каталога.Если файл присутствует где-либо еще, он не будет загружен

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...