[刘阳Java]_了解BeanFactory_第4讲
为什么说我们这篇文章只是说了解一下BeanFactory。因为BeanFactory内在的机制与代码实现实在是太强大了,在这一点我确实不敢滥竽充数。
1. 那么我们又如何去了解BeanFactory,大家可以从它所具备的功能和作用去了解。
- 我们都知道Spring框架有一个明显的作用就是它的IoC容器,所谓的IoC容器就是帮我们自动new对象,对象的生命周期交给Spring管管理
- 而在Spring官方文档中谈到的Bean,其实就是我们说的由Spring IoC容器new出来的对象。这一点我个人认为大家可以注意一下
- 在Spring框架中真正的能够new一个对象,能够提供对象之间的依赖关系。其幕后使者就是BeanFactory
2. BeanFactory只是一个接口,那么要初始化BeanFactory则需要它的子类。例如下面的代码
BeanFactory beanFactory = new ClassPathXmlApplicationContext("spring.xml");
但是通过上面的代码我们好像又看到BeanFactory的另一个作用,可能这个作用能够代表Spring框架启动的流程
- 首先是读取Spring的xml配置文件,然后解析xml文件中的各种bean的定义,将xml文件中的每一个<bean />元素分别转换成一个BeanDefinition对象,其中保存了从配置文件中读取到的该bean的各种信息
- 然后通过BeanDefinitionRegistry将这些bean注册到beanFactory中
- 最后实例化阶段主要是通过反射或者CGLIB对bean进行实例化
3. 了解BeanFactory中的getBean方法
- getBean(String name): 获取对象,但是需要类型转换
- getBean(String name, Class<T>clazz):获取对象,无需类型转换
- 需要注意的地方
- 如果使用getBean(String name, Class<T>clazz)方法一定要关注Spring框架版本,在spring.4.x版本中提供了getBean对泛型的支持
- 如果使用spring.4.x版本,需要包含下面的jar包(spring-core.jar, spring-beans.jar, spring-context.jar, spring-expression.jar, common-logging.jar)
分类:
Spring_学习笔记
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下