当没有显示错误时,如何修复未在 java 中执行的主要方法?

How to fix main method not being executed in java, when no error is showing?

我已经通过XML为帐户创建了一个bean。我的主要方法目前应该只打印我添加到这个 bean 的构造函数参数。程序 运行s 没有错误,但是 main 没有执行,所以我在控制台没有输出。

它是一个 spring 遗留项目(简单的 maven),并且有一个 H2 数据库,由于我没有使用它,所以目前是空的。

我已经检查了我的主要方法,在每行之后打印,none 正在打印,所以我认为它根本没有命中该方法。

我检查了我的 beans.xml,设计似乎已成功创建。我仔细检查了我的 pom.xml 以确保我有正确的 groupId。我还右键单击 mainApp 文件并转到 运行 as - 运行 配置,主要并确保它包含系统文件。在这里它有 main class 标记为 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>'''

我希望看到打印出的 bean 的属性,而我的控制台只显示光标,就像它在等待输入一样。

你的主要方法的签名是错误的。应该是public static void main(String[] args)

你的xml配置中的constructor args标签会将相应的值传递给父bean的class的构造函数,在你的代码中是AccountInformation。它不会传递给 main 方法,main 方法的参数始终是 String[].

类型

您的 AccountInformation class 需要这样的构造函数:

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