当前位置:网站首页>0729放假自习
0729放假自习
2022-07-30 08:42:00 【生活可真难啊】
Bean的生命周期简述?
关键字:实例化--初始化
1.实例化Bean对象,通过反射的方式获取对象,在底层源码里面有一个CreatNewInstance的方法,用来创建对象;
2.创建对象后,对象的属性都是默认值,通过popluateBean来给对象填充属性;
3.给Bean对象赋予容器属性,需要通过invokeAwareMethdos方法来把容器属性注入给Bean对象;
4.通过BeanPostProcessor前置方法,来做一些扩展工作;例如ApplicationContextProxyCeartor;
5.初始化Bean对象,通过invokeinitMehods方法来初始化对象,执行之前需要判断是否实现了initalizingBean接口,然后执行afterpropertisSet方法;
6.通过BeanPostProcessor后置方法,来处理一些后置工作,aop就是在此实现的,实现的接口名称是AbstractAutoProxyCeartor;
7.拿到完整的对象后,通过getBean获取到了对象和处理;
8.对象使用完毕后,在容器关闭时,会摧毁对象,然后判断是否实现了DispoableBean接口,然后执行DestoryMethods方法;
Spring中用到了哪些设计模式?
工厂模式;
单例模式;
适配器模式;
装饰者模式:
观察者模式;
模板方法:
建造者模式;
Spring的事务是如何回滚的?
spring的事务是通过aop实现的,首先生成具体的代理对象,然后按照aop的整套流程来实现具体逻辑,一般情况下都是通过 通知 来完成核心功能,但是spring的事务不一样,他是通过TranstactionInterceptor来实现的,通过调用invoke方法来实现具体逻辑.在执行过程中,如果执行失败了,会通过completeTransactionAfterThrowing来实现回滚操作,然后会通过doRollback来实现具体逻辑,回滚也需要先获取连接对象,通过连接对象来回滚;
边栏推荐
- Kotlin value class - value class
- HCIP - MPLS VPN experiment
- 研发人员的悲剧——“庞氏骗局”
- 最远点采样 — D-FPS与F-FPS
- 浅论各种调试接口(JTAG、SWD、RDI、Jlink、Ulink、STlink)的区别
- 02-课程发布
- hcip实验
- 剖析SGI STL空间配置器(_S_refill内存块填充函数)
- Detailed explanation of 4D words: C language three-point chess advanced + N-piece chess recursive dynamic judgment of winning or losing
- 宝塔搭建DM企业建站系统源码实测
猜你喜欢
随机推荐
积分专题笔记-与路径无关条件
DDR、GDDR、QDR的区别
回板后,处理器不启动,怎么办?
2022/07/29 Study Notes (day19) Exception Handling
公共Jar包的版本管理
The difference between DDR, GDDR, QDR
ant-design form表单校验upload组件(附个人封装的上传组件)
开关电源波纹的产生、测量及抑制,一篇全搞定!
Liunx服务器安装SVN(安装包版)
剖析SGI STL空间配置器(allocate内存分配函数)
2022杭电多校第二场
iperf3 参数选项详细说明
C language classic practice questions (3) - "Hanoi Tower (Hanoi)"
激活数据潜力 亚马逊云科技重塑云上存储“全家桶”
20个电路能懂5个以上,足以证明你在电子行业混过!
经历了这样一个阶段的发展之后,数字零售才能有新的进化
MySQL【运算符】
342 · Valley Sequence
Flutter 环境变量配置和flutter doctor中的错误解决
The sword refers to offer 48: the longest non-repeating substring






![[Unity]UI切换环形滚动效果](/img/8d/5d139369285f3c49e3695d96c81d60.png)


