spring第一节-学习源码的思路和对应的几个简单问题
学习心态
- 明确主线和分支,先主线,后求细
- 课后主动跟一边源码,自己能走通才是真的通
学习源码的意义
- 提升阅读代码的能力,学习别人的代码才能更好的写代码
- 对框架有深层的理解
- 面试
- 为阅读别的框架源码打下基础
几个简单的问题
-
简述beanFactory:生产bean的工厂,主要作用是bean的生产和装配
-
简述beanFactory和applicationContext的区别:beanFactory如上,applicationContext不仅包含beanFactory生产bean的功能,还包括bean生命周期的管理,自动注册beanPostProcessor,beanFactoryPostProcessor,国际化,和内部发布机制
-
简述springioc的加载过程:主要包括定位,解析,注册,实例化
- 定位:资源文件定位,主要包括bean的xml,@Configuration,javaConfig
- 解析:解析资源文件通过beandefinitionReader
- 注册:将beanDefinition的name放到map里,bean的注册实在beanfactory中完成
- 实例化:在beanfactory的geiBean中完成初始化
-
bean的生命周期
定位,解析,注册,实例化 -------------> 设置对象属性 ----->通过后置处理器实现bean的诸多aware接口 -------------------> 初始化 ----> 讲bean放入单例池中
-
spring中有哪些扩展接口和调用时机
- postConstruct注解,在bean的属性都设置好后被调用,完成一些初始化工作
- applicationContextAware接口,只要bean实现了这个接口,就能在bean被加载过程中获取上下文
- 具体可以看 https://blog.csdn.net/windrui/article/details/105549010。简单了解就好
不恋尘世浮华,不写红尘纷扰
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理