孙哥Spring源码第15集

news2025/3/3 4:37:16

第15集 BeanPostProcessor、BeanFactroyPostProcessor

【视频来源于:B站up主孙帅suns Spring源码视频】

1、Spring预先给我们提供的PostProcessor的有哪些 是怎么来的?

image-20230511111800366 image-20230511112354396

2、Spirng中非常重要的扩展点

  • BeanPostProcessor 和BeanFactoryPostProcesor
    • AutowiredAnnotationBeanPostProcessor
  • BeanFactoryPostProcesor有个子接口BeanDefinitionRegistryPostProcessor

3、BeanFactoryPostProcesor和BeanFactoryPostProcesor的区别

BeanPostProcessor处理的是对象

BeanFactoryPostProcesor处理的是BeanDefintion

image-20230511092819634

4、BeanFactroyPostProcessor实践

image-20230529102631635

注意@Component的BeanFactroyPostProcessor直接使用 image-20230511113515207

5、ConfigurationClassPostProcessor的作用

作用:处理 @Configuration 注解 —> @Bean
@ComponentScan 包扫描
@Import 1 注册普通类 2 importSelect 3 importBeanDefinitionRegister
@ImportResource

6、ImportResource应用场景

  • 遗留系统的处理
    • image-20230511100450837
    • image-20230511100556917
    • image-20230511100527409
  • SpringBoot事务纯注解
    • 使用注解处理事务冗余太多了
      • image-20230511100709271
    • 这样带来的好处就是减少冗余
      • image-20230511100728117

7、AutowiredAnnotationBeanPostProcessor的作用

作用 @Autowired @Value @Inject

8、CommonAnnotationBeanPostProcessor 的作用

  • @Resource
  • @PostConstruct
    • init-method
    • InitializingBean
  • @PreDestory
    • destroy-method
    • DisposableBean

9、AnnotationConfigApplicationContext和ClassPathXmlApplicationContext区别

AnnotationConfigApplicationContext处理的是注解

ClassPathXmlApplicationContext处理的是xml

10、Spring架构特别牛是如何体现的?

ClassPathXmlApplicationContext比AnnotationConfigApplicationContext诞生的早,
AnnotationConfigApplicationContext对ClassPathXmlApplicationContext进行了扩展,
但是它这个扩展没有动任何源码,都是通过BeanPostProcessor来加工的,对现有的体系一点儿都没动,
通过Processor对对象做加工,对BD做加工,融入进去,这是Spring设计特别华丽的地方,不需要改代码,无缝对接。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/965345.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IA-SEG项目中DIAL-Filters(IAPM模块+LGF模块)使用解读

IA-SEG项目源自论文Improving Nighttime Driving-Scene Segmentation via Dual Image-adaptive Learnable Filters,其核心就是在原有的语义分割模型上添加了DIAL-Filters。而,DIAL-Filters由两部分组成,包括一个图像自适应处理模块&#xff0…

正运动携手EPLAN,以高效的电气设计助力运动控制的数字化设计

随着智能制造行业的快速发展,仪器仪表自动化的需求也越来越高。为了提高生产效率,降低成本,许多企业开始寻找一种集成电气、控制和数据管理的解决方案。 正运动技术作为国内领先的的运动控制和数字化解决方案供应商,已经来到前沿…

【Spring专题】Spring之事务底层源码解析

目录 特别声明前置知识Transactional简单介绍*Spring事务传播类型(非常重要)Transactional使用示例分析示例一:常用示例二:发生异常回滚示例三:try-catch【经典】示例四:REQUIRES_NEW,没有捕获异…

VS2019编译curl库

下载: curl-7.61.0.tar.gz 编译: 解压到一个文件下,然后右键以管理员权限运行buildconf.bat 编译x64的库使用的是x64 Native Tools Command Prompt for VS 2019 本机工具命令提示,如果想编译x86的库,可以选择x86 Nat…

2019CVPR Semantic Graph Convolutional Networks for 3D Human Pose Regression

基于语义图卷积网络的三维人体姿态回归 源码 https://github.com/garyzhao/SemGCN 摘要 在本文中,我们研究了学习图卷积网络(GCN)回归的问题。GCN的当前体系结构受限于卷积滤波器和共享的变换矩阵为的小感受野。为了解决这些限制&#xff…

逆向工程-架构真题(二十)

结构化程序设计采用自顶向下、逐步求精及模块化程序设计方法,通过()三种基本控制结构可以构造出任何单入口单出口程序。 顺序、选择和嵌套顺序、分支和循环分支、并发和循环跳转、选择和并发 答案:B 解析: 结构化设…

Ubuntu学习---跟着绍发学linux课程记录(第二部分)

文章目录 7 文件权限7.1 文件的权限7.2 修改文件权限7.3 修改文件的属主 8、可执行脚本8.2Shell脚本8.3python脚本的创建 学习链接: Ubuntu 21.04乌班图 Linux使用教程_60集Linux课程 所有资料在 http://afanihao.cn/java 我自己的ubuntu系统 账号:jiaoyidi 密码&a…

Nginx的配置及优化2

nginx的配置文件 一、nginx配置文件1.1、主配置文件详解1.2、子配置文件 二、修改启动程序的全局配置2.1、修改启动的工作进程数优化2.2、cpu与eorker process绑定优化2.3、PID路径优化2.4、修改工作进程的优先级 优化2.5、调试工作进程打开文件的文件个数2.5.1、基本原理2.5.2…

LPDDR4、DDR4

核心信息: 2400Mbps(每秒传输2400*1百万bit) 2400MT/s(百万次/秒) 信号

leetcode - 360周赛

一,2833. 距离原点最远的点 这道题的意思是,遇到 "L" 向左走,遇到 "R" 向右走,遇到 "_" 左右都可以走,那么要想找到距离原点最远的点,就是在找 | "L" "R&qu…

Kafka知识点总结

常见名词 生产者和消费者 同一个消费组下的消费者订阅同一个topic时,只能有一个消费者收到消息 要想让订阅同一个topic的消费者都能收到信息,需将它们放到不同的组中 分区机制 启动方法 生成者和消费者监听客户端

OpenCV C++案例实战三十三《缺陷检测》

OpenCV C案例实战三十三《缺陷检测》 前言一、结果演示二、缺陷检测算法2.1、多元模板图像2.2、训练差异模型 三、图像配准3.1 功能源码3.1 功能效果 四、多元模板图像4.1 功能源码 五、缺陷检测5.1 功能源码 六、效果演示总结 前言 本案例将使用OpenCV C 进行PCB印刷缺陷检测…

c++二叉树遍历

目录 二叉树节点结构: 1.1 前序遍历(Preorder Traversal): 递归实现(preorderRecursive函数):首先访问当前节点,然后递归遍历左子树,最后递归遍历右子树。这种遍历方式…

【Mycat 2】详解分库分表设计方案及实操测试(二)

文章目录 4. 分表、不分实例、不分库4.1 数据分片映射关系4.2 测试过程5. 分实例、分表、不分库5.1 分库键和分表键相同5.1.1 数据分片映射关系5.1.2 测试过程5.2 分库键和分表键不相同5.2.1 数据分片映射关系5.2.2 测试过程6. 不分片6.1 普通表6.1.1 数据映射关系6.1.2 测试过…

Java智慧工地信息化管理平台源码,依托计算机信息、网络通讯、物联网、系统集成及云计算技术建立

Java智慧工地源码 智慧工地APP源码 系统定义: 智慧工地信息化管理平台是依托计算机信息、网络通讯、物联网、系统集成及云计算技术,通过数据采集、信息动态交互、智能分析,建立起来的一套集成的项目建设综合管理系统。实现项目管理信息化、网…

自定义TimeLine实现卡拉OK轨

系列文章目录 自定义TimeLine 自定义TimeLine 系列文章目录前言正文UI部分代码部分Data(数据)Clip(片段)Track(轨道)Mixer(混合)被控制物体 总结 前言 自定义TimeLine实际上就是自定…

搭建STM32F407的Freertos系统(基于STM32CubeMX)

本人长期开发Linux、Windows上应用软件,一直以来MCU开发有所接触,但较少(最近项目需要,小公司么,都得会,被逼的),好在有STM32CubeMX这样工具,貌似就是我想要的工具。 本次…

C++ sizeof求类型大小

注意内存对齐 struct Stu {int id;char sex;float hight; }; cout<<sizeof(Stu)<<endl; 会输出什么&#xff1f; 字节对齐原则:在系统默认的对齐方式下&#xff1a;每个成员相对于这个结构体变量地址的偏移量正好是该成员类型所占字节的整数倍&#xff0c;且最终…

Level-based Foraging 多智能体游戏仿真环境

游戏场景测试 参考链接&#xff1a; https://kgithub.com/semitable/lb-foraging

信息化发展16

计算机网络 从网络的作用范围可将网络类别划分为个人局域网&#xff08; Per sona l Area Net work,PAN) &#xff1e;局域网C Local Area Net work, LAN ) &#xff1e; 城域网&#xff08; Metropoli tan Areaetwork , MAN &#xff09; 、广域网&#xff08; Wide Area Net…