2025-04-07 「小马哥技术周报」- 第七十八期 议题三:大厂技术专家带你手撕源码!Spring设计缺陷?

1826
2
2025-04-09 18:00:00
作者声明:个人观点,仅供参考
正在缓冲...
14
8
30
2
「小马哥技术周报」- 第七十八期 议题三:大厂技术专家带你手撕源码!Spring设计缺陷? 解决方案: ● 通过 Comparator 来控制 CommonAnnotationBeanPostProcessor以及 AutowiredAnnotationBeanPostProcessor之间的Bean 处理顺序。 还原现场(最先还原) 如何确定版本 Java 8 Spring Framework : 5.1.6.RELEASE Spring Boot : 2.1.4.RELEASE 如何确定应用使用哪些模块 ● Spring WebMVC ● Spring AOP ● Spring TX ● Spring JDBC 组件使用场景 CommonAnnotationBeanPostProcessor 使用场景 JSR-250 以及传统 Java EE 注解(可选支持,不一定存在于 Class-Path) ● 依赖注入  ○ @javax.xml.ws.WebServiceRef  ○ @javax.ejb.EJB  ○ @javax.annotation.Resource ● 生命周期回调  ○ 初始化 - @PostConstruct  ○ 销毁 - @PreDestroy 问题的症结在于: DataSourceConfig Bean 在初始化过程中依赖了自身 Bean(自我依赖,循环依赖),导致了被依赖的 Bean(自己)不完全被初始化。源代码导致了 CommonAnnotationBeanPostProcessor在 AutowiredAnnotationBeanPostProcessor之前被执行。 原视频中之所以能解决是因为代码调整了 AutowiredAnnotationBeanPostProcessor 与 CommonAnnotationBeanPostProcessor之间的加载顺序,使其正确。 DataSourceConfig Bean 编程方式是没有问题,理论上 Spring Framework 应该予以支持,因为默认 BeanProcessor 执行顺序是 AutowiredAnnotationBeanPostProcessor在 CommonAnnotationBeanPostProcessor之前。 BeanDefinition 定义顺序是 AutowiredAnnotationBeanPostProcessor在 CommonAnnotationBeanPostProcessor之前。 由于 AutowiredAnnotationBeanPostProcessorOrder 数值高于 CommonAnnotationBeanPostProcessor的 Order 数值,所以优先级是 CommonAnnotationBeanPostProcessor高于 AutowiredAnnotationBeanPostProcessor。(直到最新版本也是如此。) 所以 DataSourceConfig Bean 在用法上需要注意这个细节。
前 Alibaba 资深技术专家,Apache Dubbo PMC,Spring Cloud Alibaba 架构师,技术咨询、作者、讲师
自动连播
7.4万播放
简介
2023.04.22「小马哥技术周报」- 第五十期《小马哥讲Spring核心编程思想课程答疑 2023.02 期》
02:22:12
2023.04.18「小马哥技术周报」- 第四十九期《小马哥讲Spring核心编程思想课程答疑 2023.01 期》
02:44:06
2023.04.13「小马哥技术周报」- 第四十八期《2023年 Java 行业还有希望吗?》
02:17:15
2023.04.08「小马哥技术周报」- 第四十七期《现在的 Java 培训是割韭菜?》
03:08:33
2021.12.19 「小马哥技术周报」- 第四十六期 《Log4j2 高风险漏洞的来龙去脉》
02:06:33
2023.04.25「小马哥技术周报」- 第五十一期《小马哥讲Spring核心编程思想课程答疑 2023.03 期》
01:24:44
2023.05.09「小马哥技术周报」- 第五十二期《职场困惑和职业规划 2023.01 期》
03:38:40
2023.05.11「小马哥技术周报」- 第五十二期《职场困惑和职业规划 2023.01 期(续)》
02:52:41
2023-05-24「小马哥技术周报」- 第五十三期:降本增效浪潮下,还有必要卷吗?
01:05:56
2023.06.06「小马哥技术周报」- 第五十四期:训练营学员定制化需求
01:53:11
2023.06.08「小马哥技术周报」- 第五十五期:Spring 容器并行 Bean 初始化设计与实现
02:13:45
2023.06.14「小马哥技术周报」- 第五十六期:Spring 容器并行 Bean 生命周期处理实现
02:59:57
2023.06.20「小马哥技术周报」- 第五十七期:训练营学员定制化需求(二)(上)
01:36:24
2023.06.20「小马哥技术周报」- 第五十七期:训练营学员定制化需求(二)(上)
01:18:20
2023.09.06「小马哥技术周报」- 第五十八期:训练营小伙伴公司内部需求 - Alibaba Druid 可观测性设计与实现
03:10:59
2023.09.08「小马哥技术周报」- 第五十九期:跨区域 Eureka 注册中心设计
02:27:34
2023.09.22「小马哥技术周报」- 第六十期:Java 21 主要特性变化
02:38:37
2023.10.10「小马哥技术周报」- 第六十一期:Java 行业现状与职业规划
01:15:02
2023.10.10「小马哥技术周报」- 第六十一期:Java 行业现状与职业规划(2)
01:21:22
「小马哥技术周报」番外篇 - 重温《微服务实践之路》
42:35
2023.10.24「小马哥技术周报」- 第六十二期:近年重大线上故障分析
03:03:19
2023.11.08「小马哥技术周报」- 第六十三期:生产环境 G1 FullGC 问题排查
01:28:03
2023.11.29「小马哥技术周报」- 第六十四期:本周热门事件
01:13:03
2023.12.13「小马哥技术周报」- 第六十五期:防御性编程正确姿势
01:31:53
2023.12.26「小马哥技术周报」- 第六十六期:2023 跨年预热直播
01:28:49
2024.01.19「小马哥技术周报」- 第六十七期:解读《Apache Dubbo 下一代云原生微服务挑战赛》
01:42:20
2024.03.15「小马哥技术周报」- 第六十八期:3.15 前阿里员工期权维权
59:25
2024.03.20「小马哥技术周报」- 第六十九期:小马哥 Java 分布式训练营第四期作业点评
02:11:38
2024.08.13「小马哥技术周报」- 第七十二期 - Java 线程池中的“奇技淫巧”
01:26:37
2024.04.19「小马哥技术周报」- 第七十期 - OpenFeign 如何实现范化调用
11:00
2024.04.19「小马哥技术周报」- 第七十期 - RPC 调用中熔断时间与超时时间的区别?
05:07
2024.04.19「小马哥技术周报」- 第七十期 - 腾讯云4月8日故障分析
32:13
2024.04.19「小马哥技术周报」- 第七十期 - 为什么 Spring Boot 第一次加载 Freemarker 模板总是很慢?
07:38
2024.04.19「小马哥技术周报」- 第七十期 - 如何模拟 Tomcat java.net.SocketException: Broken pipe 异常
03:07
2024.04.19「小马哥技术周报」- 第七十期 - 如何通过灰度发布防止故障?
13:00
2024.04.19「小马哥技术周报」- 第七十期 - 如何绘制一个支持 1W QPS 高并发的架构图?
31:01
2024.04.19「小马哥技术周报」- 第七十期 - SDK 与 API 的区别
02:08
2024-08-28「小马哥技术周报」- 第七十三期 - Spring Bean 生命周期设计缺陷以及解决方案 - Spring 事件(Event)
36:50
2024-08-28「小马哥技术周报」- 第七十三期 - 预判 A 股投资机会以及相关看法
01:36
2024-11-10 「小马哥技术周报」- 第七十四期:Java Code Review - Part1 - @极海Channel - AOP 高级编程
54:13
2024-11-10 「小马哥技术周报」- 第七十四期:Java Code Review - Part2 - @J3code - HashCode 问题
40:31
2025-01-17 「小马哥技术周报」- 第七十五期:支付宝 2025.01.16 国补故障分析
35:05
2025-03-07 「小马哥技术周报」- 第七十六期:乙巳年工作计划
01:42:45
2025-03-23 「小马哥技术周报」- 第七十七期:Java 从八股到放弃 - 为什么 Catch 异常类初始化,Java 进程会错误退出?
12:21
2025-03-23 「小马哥技术周报」- 第七十七期:Java 从八股到放弃 - 为什么线程池 submit 方法去执行错误类初始化没有异常堆栈?
29:54
2025-03-23 「小马哥技术周报」- 第七十七期:Java 从八股到放弃 - 线程池的核心线程数为什么那么小?
38:26
2025-03-23 「小马哥技术周报」- 第七十七期:Java 从八股到放弃 - 现代 Java 学习路径
18:21
2025-03-23 「小马哥技术周报」- 第七十七期:Java 从八股到放弃 - Java 对象类型,是值传递还是引用传递?
18:36
2025-04-07 「小马哥技术周报」- 第七十八期 议题一:Bean 的创建顺序如何控制
11:11
2025-04-07 「小马哥技术周报」- 第七十八期 议题二:Spring 如何优雅关闭 Java 应用
36:36
2025-04-07 「小马哥技术周报」- 第七十八期 议题三:大厂技术专家带你手撕源码!Spring设计缺陷?
01:27:31
2025-04-24 「小马哥技术周报」- 第七十九期:分布式链路跟踪设计与实现
01:00:13
2025-04-24 「小马哥技术周报」- 第七十九期 议题二:Java 方法重载、覆盖、桥接以及参数匹配的秘密
46:19
客服
顶部
赛事库 课堂 2021拜年纪