java - 在静态方法中注入(inject)依赖

标签 java spring

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

@Component
public class MyClass {
    @Autowired
    public static void main(String[] args) {
        // do stuff 
    }
}

我想要实现的是为此工作代码实现 Autowiring :

@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
    }
}

最佳答案

首先,我很确定包含 public static void main(String[] args, MyClass mc) { 的第二个代码块不会作为启动应用程序的主要方法。

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

关于java - 在静态方法中注入(inject)依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15014812/

相关文章:

java - Spring mvc 多部分

java - 如何通过.xpath 在 Selenium Web Driver 中查找元素

java - Java 中的数组返回内存分配而不是值

java - Spring Data 域事件丢失(?)

java - 无效的 JWK 设置 URL : null

java - 在 POM.xml 中使用环境变量不起作用

java - Spring MVC 基于注释的配置不起作用

java - 在 Mock Spring Junit 测试期间注入(inject)/设置对象

java - 如何从 Spring Security 中的默认过滤器堆栈中删除一个过滤器?

java - Spring 的不同范围