使用自动连线注释构建Spring独立应用程序
我正在学习Spring,并观看了一些教程来理解这个概念,但我找不到任何与我的问题相关的例子,所以我甚至不确定它是否应该像那样工作,或者可能我根本不理解这个概念 是否可以使用@Autowire注释使用spring自动连接构建一个简单的Java SE项目,而不必在spring.xml中设置bean和内容 就像定义一些组合类一样,使用一些@Autowired字段定义为@Component,这样就可以了吗 以下是soem代码的总体思路: Framework.java使用自动连线注释构建Spring独立应用程序,spring,autowired,Spring,Autowired,我正在学习Spring,并观看了一些教程来理解这个概念,但我找不到任何与我的问题相关的例子,所以我甚至不确定它是否应该像那样工作,或者可能我根本不理解这个概念 是否可以使用@Autowire注释使用spring自动连接构建一个简单的Java SE项目,而不必在spring.xml中设置bean和内容 就像定义一些组合类一样,使用一些@Autowired字段定义为@Component,这样就可以了吗 以下是soem代码的总体思路: Framework.java import lombok.Gett
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.getTestFramework()指令中获取NullPointException
你能解释一下遗漏了什么或者如何让它发挥作用吗?
代码示例将非常受欢迎^^
先谢谢你
SpringTest tester = new SpringTest();
这无法工作,因为通过自己调用构造函数,它不再是Spring管理的bean,因此不符合依赖项注入的条件。除此之外,您决没有将SpringTest
标记为Spring管理的bean。任何使用@Autowired
的类都必须位于Spring容器中
要实现这一点,您需要将
@组件注释添加到SpringTest
,然后在main方法中执行类似于ApplicationContext.getBean(SpringTest.class)
的操作。谢谢您的回答。那么我还需要一个spring.xml文件来配置bean吗?有没有一种方法可以实例化应用程序上下文?有多种方法可以配置Spring容器,不需要xml。