我正在学习有关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。
您能解释一下缺少的内容或如何使它起作用吗? 代码示例将非常精确^^
谢谢。
答案 0 :(得分:0)
SpringTest tester = new SpringTest();
这不起作用,因为通过自己调用构造函数,它不再是Spring托管的bean,因此不适合进行依赖项注入。最重要的是,您绝对不会将SpringTest
标记为Spring托管的bean。任何使用@Autowired
的类都必须存在于Spring容器中。
要执行此操作,您需要向@Component
添加SpringTest
批注,然后在主要方法中执行类似ApplicationContext.getBean(SpringTest.class)
的操作。