SpringMVC项目中Domain层因为@Autowired注释失效,实例没有完成初始化,出现空指针异常。
尝试了各种方法,包括为实体添加无参数构造函数、检查Spring配置文件中applicationContext.xml中context:component-scan项的配置等,都没有解决问题。
最后终于发现因为Service层(Domain的上一层)一个属性忘了使用自动注入,而是手动实例化,因此导致Service层以下的层的@Autowired注释失效。
这是现象比较有意思,可见SpringMVC要求我们在应该使用自动注入的地方必须使用,否则它会赌气让后面的自动注入失效。