ToB企服应用市场:ToB评测及商务社交产业平台

标题: springboot~ConfigurableListableBeanFactory和ApplicationContext的使用场 [打印本页]

作者: 万万哇    时间: 2023-10-4 22:53
标题: springboot~ConfigurableListableBeanFactory和ApplicationContext的使用场
在工具类中封装getBean,使用哪个接口来实现

实事上,在工具类中,实现BeanFactoryPostProcessor和ApplicationContextAware接口后,使用它们构造方法里的对象ConfigurableListableBeanFactory和ApplicationContext都可以很方便的获取spring容器里的bean,而在实际应用时,还有有些不同的,比如在我们的@Configuration配置类中,我直接使用ApplicationContextAware里的ApplicationContext对象来获取bean,我是否工具类里的,它是无法正常得到ApplicationContext对象的,也就无法获取bean了;而如果实现的是BeanFactoryPostProcessor接口,通过它的ConfigurableListableBeanFactory对象来获取bean,结果是正常的,我应该与这两个的加载机制有关吧。
总结:当你封装一个SpringUtils工具类时,获取bean对象的方法时,最好使用BeanFactoryPostProcessor接口里的ConfigurableListableBeanFactory对象,这样可以避免NPE(NullPointerException)的问题。
使用场景和功能

ConfigurableListableBeanFactory 和 ApplicationContext 都是 Spring 容器的接口,它们有各自的使用场景和功能:
总的来说,ConfigurableListableBeanFactory 主要用于编程式配置和基本的 Bean 定义、检索以及自定义 Bean 处理。ApplicationContext 是一个更高级的容器,适用于应用程序上下文管理、依赖注入、AOP、事务、国际化、事件发布等高级功能,特别适合开发应用程序。在大多数情况下,应用程序中使用的容器通常是 ApplicationContext 或其派生类型。
区别

getBean 方法在 ConfigurableListableBeanFactory 和 ApplicationContext 接口中都存在,但它们之间有一些重要的区别,主要涉及到 Spring 容器的层次结构和功能。
总的来说,ConfigurableListableBeanFactory 是一个较低级别的 Bean 工厂接口,主要用于 Bean 的创建和管理。ApplicationContext 则是更高级别的接口,它构建在 ConfigurableListableBeanFactory 之上,并提供了更多功能和便捷性,通常更适合应用程序的上下文管理。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4