使用自动连线注释构建Spring独立应用程序

使用自动连线注释构建Spring独立应用程序,spring,autowired,Spring,Autowired,我正在学习Spring,并观看了一些教程来理解这个概念,但我找不到任何与我的问题相关的例子,所以我甚至不确定它是否应该像那样工作,或者可能我根本不理解这个概念 是否可以使用@Autowire注释使用spring自动连接构建一个简单的Java SE项目,而不必在spring.xml中设置bean和内容 就像定义一些组合类一样,使用一些@Autowired字段定义为@Component,这样就可以了吗 以下是soem代码的总体思路: Framework.java import lombok.Gett

我正在学习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.getTestFramework()指令中获取NullPointException

你能解释一下遗漏了什么或者如何让它发挥作用吗? 代码示例将非常受欢迎^^

先谢谢你

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


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

谢谢您的回答。那么我还需要一个spring.xml文件来配置bean吗?有没有一种方法可以实例化应用程序上下文?有多种方法可以配置Spring容器,不需要xml。