x-ray
Observer和Observable在JDK9以后被废弃,貌似提示考虑使用java.util.concurrent.Flow
作者回复:哈哈,因为这个实现的确比较憋足~
2021-01-22
4
子房
笔记;本章主要介绍,spring 配置元信息包括 IOC 元信息和bean 配置元信息的配置以及解析过程。有相应的注册。
作者回复:简明的总结~
2021-01-21
x-ray
感谢老师,我有点明白了。TypeConverterDelegate这个类是实际进行具体转换细节的类,它之所以这么繁琐,是因为要兼容ConversionService这套新体系和PropertyEditor这套老体系。如果不是老师抽丝剥茧这样讲,光看他的源码,我感觉真的看再多遍也不会悟!之前撸到类型转换,之所以感觉看不懂,很难,就是因为对它的设计历史原因不了解!
作者回复:不客气,消化的过程可能艰辛,结果不会让人失望。
2021-01-19
1
witluo
追了一下源码,发现 servlet 仅仅是提供了一组 api,并没有具体的实现
作者回复:是,它使用 Servlet 规范实现来决定,比如 Tomcat 或 Jetty
2021-01-19
5
witluo
这里的 request scope 中的数据 最终存在什么位置呀? 是在 ThreadLocal中存储吗? 还是缓存在 spring 容器中呢?
作者回复:request scope 存放在 ServletRequest 上下文中。
2021-01-19
1
x-ray
name必须是conversionService,感觉这种细节在Spring里很多,还有一个例子好像是transcation-manager,那个名字也是有要求的。不知道Spring的文档里是不是有说明。但感觉不如源码来得直观
作者回复:文档里面写到了,不过很少有人会注意那么仔细。
2021-01-19
fullmoon
AbstractApplicationContext#registerListeners() 方法,主要获取到所有的 ApplicationListener,并广播早期事件,会做以下事情:
1. 将当前 Spring 应用上下文已有的 ApplicationListener 依次添加至事件广播器
2. 从底层 BeanFactory 容器中获取所有 ApplicationListener 类型的 beanName 们(还未初始化),然后依次添加至事件广播器
3. 复制全部的 `earlyApplicationEvents` **早期事件**,然后将 `earlyApplicationEvents` 置为 `null`
4. 广播**早期事件**,如果 ApplicationListener 能够处理该事件,则会通过依赖注入的方式初始化该 ApplicationListener
**早期事件**:在当前 Spring 应用上下文刷新的过程中已经发布的事件(此时发布不会被监听到,因为 ApplicationListener 才刚全部找到,需要到此处通过事件广播器进行广播)
2021-01-12
FATMAN89
小马哥,感觉用Qualifier这种分组的功能貌似有些弱,实际开发过程中哪些场景会用到?
作者回复:有的,比如自定义 @Qualifier,再如 Spring Cloud @LoadBalanced 注解
2020-12-14
James Harden13
跟到小马哥学到了很多东西,不仅教会了我怎么用,还通过看源码了解更多细节,希望老师能出更多优秀的课程。这节课总结:在AbstractApplicationContext#refresh方法中, registerBeanPostProcessors(beanFactory)->initApplicationEventMulticaster()。registerBeanPostProcessors:将实现BeanProcessor接口的bean提前出例化,此时在postProcessBeforeInitialization调用publish方法发布事件就会出现bug,因为EventMulticaster是在 initApplicationEventMulticaster里初始化的.所以用earlyApplicationEvents来存储提前发布的Event事件
作者回复:谢谢支持~
2020-09-12
5
witluo
不敢调播放速度,不敢快进,还总是反复回放的学到现在这个章节。真的开启了Spring的部分内幕。期待小马哥更多的视频课程
作者回复:加油~
2020-09-07
2
编辑推荐
讲师的其他课程
包含这门课的学习路径
Java工程师
29门课程 154.7w人学习
看过的人还看了