我从类Driver
创建了一个bean。通过自己的方法访问该bean中的@Autowire
字段wait
时,一切正常,但是当我使用wait
在bean中直接调用driver.wait
时,我得到了{{1 }}。有人可以解释为什么会这样吗?
NullPointerException
答案 0 :(得分:1)
因为您正在使用字段引用来访问driver.wait
字段。 Spring自动关联基于应用于方法的生成的代理,尤其是当某些bean为@Lazy
时。根据{{3}}:
除了用于组件初始化的角色外,还可以将
@Lazy
批注放置在标记为@Autowired
或@Inject
的注入点上。在这种情况下,它导致注入了惰性解析代理。
下面应该假设存在相应的getWait()
方法才能工作:
driver.getWait().doStuff()