为什么调用bean中的@Autowired字段会返回null?

时间:2019-03-05 11:08:25

标签: java spring nullpointerexception autowired

我从类Driver创建了一个bean。通过自己的方法访问该bean中的@Autowire字段wait时,一切正常,但是当我使用wait在bean中直接调用driver.wait时,我得到了{{1 }}。有人可以解释为什么会这样吗?

NullPointerException

1 个答案:

答案 0 :(得分:1)

因为您正在使用字段引用来访问driver.wait字段。 Spring自动关联基于应用于方法的生成的代理,尤其是当某些bean为@Lazy时。根据{{​​3}}:

  

除了用于组件初始化的角色外,还可以将@Lazy批注放置在标记为@Autowired@Inject的注入点上。在这种情况下,它导致注入了惰性解析代理。

下面应该假设存在相应的getWait()方法才能工作:

driver.getWait().doStuff()