@Autowired不在内部班级工作

时间:2015-02-25 13:31:54

标签: java spring dependency-injection inner-classes

我在内部类中有一个@Autowired类。但是在执行它时会抛出Null指针异常,而在外部类中自动装配时它可以正常工作

class outer {
   ...
   class inner {
       @Autowired
       private var somevar;
       private process () {
           somevar.someMethod();
   }
}

知道为什么这不起作用? somevar.someMethod();行正在产生NPE。

1 个答案:

答案 0 :(得分:2)

外部类管理内部实例创建有什么理由吗?例如,内部对象是否需要引用外部对象?如果是的话,你不能用它制作豆子。内部类只有在静态时才可以是bean。因此,您必须自己管理所有依赖项(创建它的代码应该完成工作)。

如果不需要对外部实例进行这样的引用,则使内部类静态,使用@Component注释,并让spring执行其余的依赖注入。