Spring IOC架构设计解析

news2024/11/24 9:42:36

一、spring famework 模块解析

二、SpringIOC容器:Core Container: Beans、Core、Context、Expression

三、BeanFactory (该接口定义了容器最基本的功能方法)和 ApplicationContext(对容器提供了更丰富的功能扩展,大部分应用中所使用的基于它实现)

1、BeanFactory

(1)BeanFactory是Spring对IOC容器的最高层抽象

(2)BeanFactory提供各种获取Bean的方法

(3)默认实现:DefaultListableBeanFactory

2、ApplicationContext接口

(1)继承了BeanFactory接口的所有方法

(2)功能更加齐全,支持后处理与事件机制

(3)常用实现:AnnotationConfigApplicationContext

AbstractApplicationContext类承担了主要内容。

3、BeanFactory(bean的注册和获取)和ApplicationContext(更完备的功能)的区别

Feature

BeanFactory

ApplicationContext

构建实例化Bean容器/读取bean

Y

Y

生命周期的管理

N

Y

BeanPostProcessor自动注册

N

Y

BeanFactoryPostProcessor自动注册

N

Y

MessageSource支持

N

Y

ApplicantionEvent 事件发布

N

Y

四、如何定义Bean实例的方法

1、基于xml定义Bean

2、基于注解定义Bean

3、基于Java类,@Configuration定义Bean

五、容器扩展点BeanPostProcessor 和 BeanFactoryPostProcessor(可以通过扩展点实现通用业务逻辑)

1、BeanPostProcessor:在容器初始化Bean的过程中提供干预的扩展

(1)postProcessBeforeInitialization

(2)postProcessAfterInitialization

2、BeanFactoryPostProcessor: 主要用于修改Bean的定义,方法postProcessBeanFactory,晚于BeanDefinitionRegistryPostProcessor执行,每个Bean都要执行一次

3、BeanDefinitionRegistryPostProcessor ,Bean定义注册以后,执行该接口的方法,只执行一次

六、Bean的生命周期Callbacks(对Bean生命周期回调扩展点是否清晰)

1、Spring接口扩展InitializingBean,DisposableBean(销毁Bean),缺点是有入侵,需要引入对应的api

2、基于JSR-250注解@PostConstruct,@PreDestroy(销毁Bean之前),优点是没有入侵,引用自javax.annotation.* 包下的

3、基于Spring xml配置init, destroy方法

4、初始化和销毁的优先级:2 > 1 > 3

七、BeanPostProcessor扩展点总结

 

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

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

相关文章

【机器学习-10】 | Scikit-Learn工具包进阶指南:Scikit-Learn工具包之支持向量机模块研究

🎩 欢迎来到技术探索的奇幻世界👨‍💻 📜 个人主页:一伦明悦-CSDN博客 ✍🏻 作者简介: C软件开发、Python机器学习爱好者 🗣️ 互动与支持:💬评论 &…

高考英语3500词

DAY1 DAY2 DAY3 DAY4 DAY5 DAY6 DAY7 DAY8 DAY9 DAY10 DAY11 DAY12 DAY13 DAY14 DAY15 DAY16 DAY17 DAY18 DAY19 DAY20 DAY21 DAY22 DAY23 DAY24 DAY25 DAY26 DAY27 DAY28 DAY29 DAY30 DAY31 DAY32 DAY33 DAY34 DAY35 DAY36 DAY37 DAY38 DAY39 DAY40

更进一步|瑞数信息位居2023年中国私有云WAF市场份额Top2!

更进一步|瑞数信息位居2023年中国私有云WAF市场份额Top2! 近日,IDC《中国云Web应用防火墙市场份额,2023:WAAP成为共同演进方向》报告正式发布。报告聚焦2023年中国云Web应用防火墙市场的规模、厂商份额以及技术发展变…

Python光束三维二维标量场和算法

🎯要点 🎯矢量计算和绘图:🖊二维,三维 | 🖊转换矢量图 | 🖊矢量和矩阵计算 | 🖊矢量空间变换和计算 | 🖊解矢量线性方程 | 🎯数学和物理矢量计算&#xff1a…

ppdetection-2.7

1, pip install -r requirement.txt 2、 ValueError: paddle.load can not parse the file:C:\Users\HX/.cache/paddle/weights\deepsort_pcb_pyramid_r101.pdparams. 重新下载模型 3、 declarative() got an unexpected keyword argument看一下参数是否写对,比如…

树莓派选型深度指南:架构、性能与应用场景全解析

树莓派作为全球最受欢迎的单板计算机,凭借其低廉的价格、强大的性能和丰富的扩展性,吸引了无数电子爱好者、开发者和教育工作者的青睐。然而,面对琳琅满目的树莓派型号,新手往往不知从何下手。 本文将深入对比几款市面上最热门的…

卸载 ubuntu-wsl2-systemd-script,使用 WSLg 图形用户界面

目录 全新安装 - 以前没有安装 WSL现有 WSL 安装卸载 ubuntu-wsl2-systemd-script使用 Linux GUI参考链接在 Windows 上使用 Linux 开发环境,最好的做法是使用 WSL2。在 WSL 和早期的 WSL2 版本中,并不支持图形用户界面。因此如果想要使用 GUI 程序,需要自行解决。具体方法可…

Notepad++爱国版重磅更新:集成18大高人气插件

Notepad最新版的言论与导向存在价值观问题,经重新编译修正为“统一祖国,振兴中华”版本,传导正确的价值观和爱国情怀。 Notepad功能可以通过各种插件来增强,下面是18大高人气插件 AutoCodepage 功能:在加载、重命名或更…

秋招突击——第七弹——Redis快速入门

文章目录 引言Redis是什么 正文对象String字符串面试重点 List面试考点 压缩列表ZipList面试题 Set面试题讲解 Hash面试重点 HASHTABLE底层面试考点 跳表面试重点 ZSET有序链表面试重点 总结 引言 在项目和redis之间,我犹豫了一下,觉得还是了解学习一下…

ARM服务器虚拟化手机,云手机推流应用案例

大家都知道,ARM 服务器虚拟化手机和云手机推流技术可算是热门话题,不止是企业,个人卖家也会通过云手机推流来获得更多的客源,实现经济自由,但是针对云手机的推流,很多人还是不知道有哪些应用场景~我们可以展…

永洪bi知识点

1、下拉过滤组件和下拉参数组件的区别 下拉过滤组件只能对跟他绑有相同数据集的组件进行过滤 而下拉参数组件是当你设置了筛选条件以后,那么所有的组件,不管你绑定了什么样子的数据集,都能起作用,前提是你这个组件是需要去绑定参…

LED热管理

LED照明系统的热管理 本文提供了用于LED灯具的热管理系统。 包含LED轨道灯具包括照明组件、安装到照明组件上并具有多个孔的夹具壳体,以及将夹具壳体固定到轨道上的安装结构。 照明组件包括具有多个翅片的散热器、安装在所述散热器上的反射器、支撑在所述散热器上…

RabbitMQ的WorkQueues模型

WorkQueues模型 Work queues,任务模型。简单来说就是让多个消费者绑定到一个队列,共同消费队列中的消息。 当消息处理比较耗时的时候,可能生产消息的速度会远远大于消息的消费速度。长此以往,消息就会堆积越来越多,…

80、443端口不能开放也能为IP地址申请SSL证书!

IP地址证书作为一种特定的证书,不同于传统的域名验证证书,IP地址证书是通过验证IP地址来确保安全连接。在证书申请过程中,往往要求短暂开放80或者443端口,如果不能开放,IP地址证书则不能签发。 JoySSL提供的IP地址证书…

如何采集拼多多的商品或店铺数据

怎么使用简数采集器批量采集拼多多的商品或店铺相关信息呢? 简数采集器暂时不支持采集拼多多的商品或店铺相关数据,只能采集页面公开显示的信息,谢谢。 简数采集器采集网站文章资讯等数据特别简单高效:只需输入网站网址&#xf…

文心一言使用笔记

目录 让文心一言提炼已有的内容,模仿给出的案例写一段宣传稿方法例子 发现写出的内容有瑕疵,如何微调?比如文心一言介绍的领导不全如何让文心一言检查语法和表达问题? 如何让文心一言将每个片段用一两句话总结?为了防止…

Open3D 点云的ISS关键点提取

目录 一、概述 1.1原理 1.2应用场景 1.3算法实现步骤 二、代码实现 2.1 完整代码 2.2关键函数 2.3关键点可视化 三、实现效果 3.1原始点云 3.2提取后点云 一、概述 1.1原理 ISS(Intrinsic Shape Signatures)关键点提取是一种常用于三维点云的…

清九野小红盾舒敏牙刷,我的口腔护理新体验

我最近发现一款很舒服的牙刷,叫做清九野小红盾舒敏牙刷,很适合牙龈敏感的朋友,如果刷牙时常感到不适,不妨试试这款既能有效清洁牙齿,又不会刺激牙龈的牙刷。 ## 🌟 独特设计,双重植毛 首先&…

PR素材库,这里应有尽有!

Premiere简称PR,操作简单,容易上手,功能丰富,因此做为后期必备软件之一。如果进行视频剪辑,去哪里找合适的素材呢,其实国内外都有不少专业的渠道。 一、视频素材 01.摄图视频 传送门:https://…

面向遥感图像的小目标检测最新方法 FFCA-YOLO

论文简介 在遥感图像中,小目标检测面临着特征表示不足和背景混淆等挑战,特别是当算法需要在有限计算资源的约束下进行实时处理时,对准确性和速度的优化要求尤为严格。为解决这些问题,本文提出了一种高效的目标检测器——特征增强、…