当spring实例化bean时,它会寻找几个接口,例如
ApplicationContextAware和
InitializingBean。如果找到它们,则将调用这些方法。例如(非常简化)
Class<?> beanClass = beanDefinition.getClass();Object bean = beanClass.newInstance();if (bean instanceof ApplicationContextAware) { ((ApplicationContextAware) bean).setApplicationContext(ctx);}请注意,在较新的版本中,使用注释可能比实现特定于Spring的接口更好。现在您可以简单地使用:
@Inject // or @Autowiredprivate ApplicationContext ctx;



