【发布时间】:2019-10-09 20:55:21
【问题描述】:
我在自动连接我的一个类时遇到空指针异常。
我尝试过使用不同的注解,例如@Component 和@ComponentScan
public class ClassA {
public final String str = "String";
public ClassA(){
System.out.println("Class A initiated");
}
}
public class ClassB {
@Autowired
public ClassA classA;
public ClassB(){
System.out.println(classA.str);
}
}
@Configuration
public class Config {
@Bean
public ClassA classA(){
return new ClassA();
}
@Bean
public ClassB classB(){
return new ClassB();
}
}
堆栈跟踪:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'classB' defined in class path resource [com/test/demo/Config.class]: Bean instantiation via factory method failed;
nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.test.demo.ClassB]: Factory method 'classB' threw exception; nested exception is java.lang.NullPointerException
【问题讨论】:
-
一个没有在任何地方初始化的字段怎么可能在类的构造函数中不为空?如果对象尚未构造,Spring 无法自动装配对象的字段。