手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

BeanFactory和ApplicationContext之间的差异

时间:2024-10-16 02:43:46

1、您应该使用a, ApplicationContext 除非您有充分的理由不这样做, GenericApplicationContext并将祈硗樘缎其子类 AnnotationConfigApplicationContext 作为自定义引导的常见实现。这些是Spring用于所有常见目的的核心容器的主要入口点:加载配置文件,触发类路径扫描,以编程方式注册bean定义和带注释的类,以及(从5.0开始)注册功能bean定义。

BeanFactory和ApplicationContext之间的差异

2、因为a ApplicationCo艘绒庳焰ntext 包含a的所有功能 BeanFactory ,所以 BeanFactory 除了需要完全控制bean处理的场景之外,通常建议使用它。在一个 ApplicationContext (例如GenericApplicationContext 实现)中,按照约定(即通过bean名称或bean类型 - 特别是后处理器)检测到几种bean,而plain DefaultListableBeanFactory 对任何特殊bean都是不可知的。

BeanFactory和ApplicationContext之间的差异

3、对于许多扩展容器功能,例如注释处理和AOP代理, BeanPostProcessor 扩展点是必不可少的。如磨营稼刻果仅使用普通 DefaultListableBeanFactory 处理器,则默认情况下不会检测到并激活此类后处理器。这种情况可能令人困惑,因为您的bean配置实际上没有任何问题。相反,在这种情况下,容器需要通过额外的设置完全自举。

BeanFactory和ApplicationContext之间的差异

4、下表列出了提供的功能 BeanFactory 和 ApplicationContext 接口和实现。

BeanFactory和ApplicationContext之间的差异

5、要使用a显式注册bean后处理器 DefaultListableBeanFactory ,您需要以编程方式调用addBeanPostProcessor ,如以下示例所示:

BeanFactory和ApplicationContext之间的差异

6、要应用于 BeanFactoryPostProcessor plain DefaultListableBeanFactory ,需要调用其postProcessBeanFactory 方法,如以下示例所示:

BeanFactory和ApplicationContext之间的差异

7、在这两种情况下,显式注册步骤都不方便,这就是为什么各种 ApplicationContext 变体优于DefaultListableBeanFactory Spring支持的应用程序中的普通模式 ,尤其是在典型企业设置中依赖于 BeanFactoryPostProcessor 和 BeanPostProcessor 扩展容器功能的实例时。

BeanFactory和ApplicationContext之间的差异

8、AnnotationConfigApplicationContext 已经注册了所有常见的注释后处理器,并且可以通过配置注释在封面下引入额外的处理器,例如@EnableTransactionManagement 。在Spring的基于注释的配置模型的抽象级别,bean后处理器的概念变成仅仅是内部容器细节。

BeanFactory和ApplicationContext之间的差异
© 手抄报圈