我仍然无法弄明白为什么我要获得NPE
foo.setName("FOOD")
这是我试图运行并面临问题的代码 .
@SpringBootApplication
public class Application {
@Autowired
private static Foo foo;
public static void main(String[] args) throws Throwable {
SpringApplication.run(Application.class, args);
foo.setName("FOOD");
}
}
@Component
class Foo {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
两个 Foo and Application
类都在同一个包中 . 我得到它的唯一方法是应用java配置 . 而不是
@Autowired
private static Foo foo;
我使用了创建实例
@Bean
private static Foo getFoo(){
return new Foo();
}
我试图将@Componentscan添加到配置类但不起作用 . 任何的想法?谢谢!
1 回答
这是很好的问题,分享我的答案也很好 . 任何人都会遇到同样的困惑,这可能会有所帮助 . 我错过的是需要在
Application
类的构造函数中注入bean .如下修改代码不会导致空指针异常 .