使用自动装配注释构建Spring独立应用程序

时间:2018-07-11 15:20:36

标签: spring autowired

我正在学习有关Spring的内容,并观看了一些教程以了解该概念,但是我找不到与我的问题相关的任何示例,因此我什至不确定它是否应该像那样工作,或者我可能没有完全了解这个概念

是否可以通过使用@Autowire注释的spring自动装配来构建简单的Java SE项目,而不必在spring.xml中设置bean和东西?

就像刚刚定义一些组合类,将@Autowired字段定义为@Component一样,好吗?

以下是带有大致概念的soem代码:

Framework.java

import lombok.Getter;
import lombok.Setter;
import org.springframework.stereotype.Component;

@Component
@Getter
@Setter
public class Framework {

    private String insertTest;

}

SpringTest.java

import org.springframework.beans.factory.annotation.Autowired;

public class SpringTest {

    @Autowired
    private Framework testeFramework;

}

Main.java

public class Main {

    public static void main(String[] args) {

        SpringTest tester = new SpringTest();
        tester.getTesteFramework().setInsertTest("dummy");

        System.out.println(tester.getTesteFramework().getInsertTest());

    }

}

到目前为止,我正在从tester.getTesteFramework()指令获取NullPointException。

您能解释一下缺少的内容或如何使它起作用吗? 代码示例将非常精确^^

谢谢。

1 个答案:

答案 0 :(得分:0)

SpringTest tester = new SpringTest();

这不起作用,因为通过自己调用构造函数,它不再是Spring托管的bean,因此不适合进行依赖项注入。最重要的是,您绝对不会将SpringTest标记为Spring托管的bean。任何使用@Autowired的类都必须存在于Spring容器中。

要执行此操作,您需要向@Component添加SpringTest批注,然后在主要方法中执行类似ApplicationContext.getBean(SpringTest.class)的操作。