Как исправить основной метод не выполняется в Java, когда не отображается ошибка? - PullRequest
0 голосов
/ 15 октября 2019

Я создал бин через XML для учетной записи. Мой основной метод должен в данный момент просто напечатать аргументы конструктора, которые я добавил к этому bean-компоненту. Программа работает без ошибок, но main не выполняется, поэтому у меня нет вывода в консоли.

Это унаследованный проект (простой maven), с базой данных H2, которая в настоящее время пуста, поскольку я ее не использовал.

Я проверил свой основной метод с печатью после каждой строки, ни одна из них не печатается, так что я не думаю, что он подходит для метода вообще.

Я проверил файл beans.xml, и дизайн, похоже, был успешно создан. Я дважды проверил свой файл pom.xml, чтобы убедиться, что у меня правильный идентификатор группы. Я также щелкнул правой кнопкой мыши по файлу mainApp и перешел к запуску как - запустил конфигурацию main и убедился, что она включает системные файлы. Здесь основной класс помечен как h2.console.

MainApp.java

package com.r00107892.bank;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.r00107892.bank.domain.Account;

public class MainApp {

    public static void main() {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext ("beans.xml");
        Account account = (Account) context.getBean("account");
        System.out.println(account);
    }
}

beans.xml

<bean class="com.r00107892.bank.domain.AccountImplementation" id="account">
    <constructor-arg name = "accountNumber" value="1"></constructor-arg>
    <constructor-arg name = "balance" value="1000"></constructor-arg>
    <constructor-arg name = "overdraft" value="500"></constructor-arg>
</bean>'''

Я ожидаю увидеть свойства напечатанного компонента, вместо этого моя консоль просто показывает курсор, какон ждет ввода.

1 Ответ

1 голос
/ 15 октября 2019

Подпись вашего основного метода неверна. Это должно быть public static void main(String[] args)

Тег конструктора args в вашей xml-конфигурации передаст соответствующее значение конструктору класса родительского компонента, который равен AccountInformation в вашем коде. Он не передается методу main, параметр метода main всегда имеет тип String[].

Ваш класс AccountInformation нуждается в таком конструкторе:

AccountInformation(int accountNumber, int balance, int overdraft)

Примечание: аргументы не должны быть целыми числами. Они могут быть любого совместимого типа. См. Это для получения дополнительной информации:

https://docs.spring.io/spring/docs/4.3.12.RELEASE/spring-framework-reference/htmlsingle/#beans-factory-ctor-arguments-resolution

...