Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.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 在静态方法中注入依赖项_Java_Spring - Fatal编程技术网

Java 在静态方法中注入依赖项

Java 在静态方法中注入依赖项,java,spring,Java,Spring,是否可以在静态方法中注入依赖项,如下所示: @Component public class MyClass { @Autowired public static void main(String[] args) { // do stuff } } 我试图实现的是实现此工作代码的自动布线: @Component public class MyClass { public static void main(String[] args, MyCla

是否可以在静态方法中注入依赖项,如下所示:

@Component
public class MyClass {
    @Autowired
    public static void main(String[] args) {
        // do stuff 
    }
}
我试图实现的是实现此工作代码的自动布线:

@Component
public class MyClass {

    public static void main(String[] args, MyClass mc) {
        ApplicationContext ctx = new GenericXmlApplicationContext("context.xml");
        MyClass p = ctx.getBean(MyClass.class);
        // do stuff
    }
}

首先,我非常确定包含
公共静态void main(String[]args,MyClass mc){
的第二个代码块不能作为启动应用程序的主要方法


您将无法以这种方式使用自动连线。请记住,静态main方法是应用程序的入口,请将其视为与类不同。当输入此方法时,不会实例化任何对象,包括处理自动连线的Spring上下文。

我觉得这是不可能的。因为方法是您代码的入口点。我相信它是执行的第一行代码。虽然您的Spring上下文未初始化,但您不能使用Spring批注。我尝试这样做是因为我在使用maven打包应用程序时遇到问题,它无法加载context.xml,而当我从eclipse运行它时,它可以工作。为什么?您的代码没有它真的很奇怪,当从eclipse运行时,它可以工作,但是当使用“mvn package”命令打包时,然后执行java-jar myjar.jar例如,当查找context.xml时,主方法抛出。您的jar是否包含context.xml?我尝试这样做是因为我在使用maven打包应用程序时遇到了问题,它无法运行ad the context.xml,而当我从eclipse运行它时,您的上下文不在jar中。这与所问的问题不同。