spring中的bean生命周期
2024-09-08 01:32:27
1、实例化(在堆空间中申请空间,对象的属性值一般是默认值。通过调用createBeanInstance()方法进行反射。先获取反射对对象class,然后获取默认无参构造器,创建对象)
2、初始化(就是进行属性赋值。通过populateBean的set方法完成赋值操作)
3、检查aware相关接口并设置相关依赖?(其中aware是一个空接口,最后再invokeAwareMethods方法中首先看这个bean是否属于aware接口然后再进行向下分类是beannameaware、beanclassloaderaware还是其他的实现了aware接口的类,然后进行对应的set赋值(容器对象属性赋值))
4、beanPostProcessor(执行前置处理,beanPostProcessor是一个接口。后面还会有一个后置处理,都是做bean对象的扩展实现)
5、执行初始化方法(invokeInitMethods()进行一个判断检测bean是否实现了InitializingBean接口,如果实现了会调用afterPropertiesSet方法(可以设置属性、调用方法、添加自定义的处理逻辑)。)
6、后置处理(在后置处理里面,会创建一个代理对象,这个代理对象通过代理工厂的getproxy方法去创建。这个方法有两个实现cglibAopproxy、jdkdynamicAopProxy。)
7、使用bean对象、销毁bean对象
最新文章
- 七步,搭建基于Windows平台完美Jekyll博客环境
- Linux下GitLab的快速安装以及备份
- Android--Apache HttpClient
- robotium 新建 android 测试项目:
- CSS之CSS hack
- JavaScript push()和splice()方法
- iOS学习之UITabBarController
- Android 将文件保存到SD卡,从卡中取文件,及删除文件
- 80端口被system 占用
- 《深入浅出Netty》【PDF】下载
- 模拟eval
- 简述Java变量和强制转换类型
- Vtiger CRM 几处SQL注入漏洞分析,测试工程师可借鉴
- Failed to introspect annotated methods on class 异常
- luogu4211 LCA
- HANA Database SR Basis Setting
- 配置WDS支持使用UEFI模式启动
- 2017-2018-1 JAVA实验站 第三周作业
- 纯css做三角形形状
- 算法笔记_078:蓝桥杯练习 最大最小公倍数(Java)