使用Autowired注释构建Spring独立应用程序



我正在学习Spring,并观看了一些教程来理解这个概念,但我找不到任何与我的问题相关的例子,所以我甚至不确定它是否应该这样工作,或者我可能根本不理解这个概念

是否可以使用@Autowire注释使用spring-Autowire构建一个简单的JavaSE项目,而不必在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。

你能解释一下缺了什么吗?或者如何让它发挥作用?代码示例将被大大简化^^

提前谢谢。

SpringTest tester = new SpringTest();

这是不可行的,因为通过自己调用构造函数,它不再是Spring管理的bean,因此不符合依赖注入的条件。除此之外,您决没有将SpringTest标记为Spring管理的bean。任何使用@Autowired的类都必须位于Spring容器中。

要实现这一点,您需要将@Component注释添加到SpringTest中,然后在主方法中执行类似ApplicationContext.getBean(SpringTest.class)的操作。

最新更新