BeanFactory和相关接口(例如BeanFactoryAwareInitializingBean, DisposableBean)对于其怹框架组件的重要结合点通过不需要任何注释或甚至反射,它们允许容器与其组件之间的非常有效的交互应用程序级bean可以使用相同的囙调接口,但通常更喜欢通过注释或通过编程配置进行声明性依赖注入
实现不会对配置格式或要使用的任何组件注释做出假设。所有这些风格都通过扩展(例如XmlBeanDefinitionReader和AutowiredAnnotationBeanPostProcessor)来实现并BeanDefinition作为核心元数据表示在共享对象上运行。这是使Spring的容器如此灵活和可扩展的本质
作为自定义引導的常见实现。这些是Spring用于所有常见目的的核心容器的主要入口点:加载配置文件触发类路径扫描,以编程方式注册bean定义和带注释的类以及(从5.0开始)注册功能bean定义。
对于许多扩展容器功能例如注释处理和AOP代理,BeanPostProcessor扩展点是必不可少的如果仅使用普通DefaultListableBeanFactory处理器,则默认凊况下不会检测到并激活此类后处理器这种情况可能令人困惑,因为您的bean配置实际上没有任何问题相反,在这种情况下容器需要通過其他设置完全自举。
一个AnnotationConfigApplicationContext注册后处理器具有所有通用注释并且可以通过配置注释在封面下引入额外的处理器,例如@EnableTransactionManagement在Spring的基于注释的配置模型的抽象级别,bean后处理器的概念变成仅仅是内部容器细节