Spring在独立应用程序中工作。您使用错误的方式来创建Spring bean。这样做的正确方法是:
@Componentpublic class Main { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("meta-INF/config.xml"); Main p = context.getBean(Main.class); p.start(args); } @Autowired private MyBean myBean; private void start(String[] args) { System.out.println("my beans method: " + myBean.getStr()); }}@Service public class MyBean { public String getStr() { return "string"; }}在第一种情况下(问题中的那个),您将自己创建对象,而不是从Spring上下文中获取对象。因此,Spring没有机会获得
Autowire依赖关系(这会导致
NullPointerException)。
在第二种情况(此答案中的一种)中,您是从Spring上下文中获取bean的,因此它是Spring托管的,而Spring负责
autowiring。



