当前位置:网站首页>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来实现具体逻辑,回滚也需要先获取连接对象,通过连接对象来回滚;
边栏推荐
- LeetCode二叉树系列——94.二叉树的中序遍历
- 2022 Hangzhou Electric Multi-School 1st Game
- 内卷下的智能投影行业,未来何去何从?
- 一个低级错误导致的诡异现象——走近科学能拍三集,(C语言)最简单的数组元素读取,不正确!?
- 剖析SGI STL空间配置器(一 、辅助接口函数)
- Scala
- How to avoid CMDB becoming a data island?
- The R installation package has error in rawtochar(block[seq_len(ns)]) :
- TreeSet parsing
- 开关电源波纹的产生、测量及抑制,一篇全搞定!
猜你喜欢
随机推荐
iperf3 参数选项详细说明
Jetpack Compose 从入门到入门(八)
剑指offer 48:最长不重复子串
ACL 2022 | 引入角度margin构建对比学习目标,增强文本语义判别能力
【HMS core】【FAQ】HMS Toolkit典型问题合集1
负电压电路(原理分析)
Google Cloud Spanner的实践经验
剖析SGI STL空间配置器(_S_refill内存块填充函数)
Liunx服务器安装SVN(安装包版)
Windows 下安装 MySQL
20220728使用电脑上的蓝牙和汇承科技的蓝牙模块HC-05配对蓝牙串口传输
都说FPGA高端,它到底能干啥?
Network/Information Security Top Journal and Related Journals Conference
R安装包出现error in rawtochar(block[seq_len(ns)]) :
How to implement Golang DES encryption and decryption?
Detailed explanation of 4D words: C language three-point chess advanced + N-piece chess recursive dynamic judgment of winning or losing
Kotlin value class - value class
BaseQuickAdapter方法getBindingAdapterPosition
PyTorch安装及环境配置(Win10)
【零基础玩转BLDC系列】以GD32F30x为例定时器相关功能详解





![MySQL [operator]](/img/dd/2bf6ccd731299dc405bc06e03e1550.png)



