您现在的位置是:首页 >学无止境 >spring 源码网站首页学无止境

spring 源码

风声是歌 2024-06-17 11:27:04
简介spring 源码

bean的创建

 

获取类class

推断构造方法 @Autoware

创建一个普通对象

依赖注入    populateBean  把一些属性注入

初始化之前 @PostConstruct 注解 初始注入 实际可以用构造方法啊

初始化   initializationBean

1.判断是否有aware接口   invokeAwareMethods

2.执行 applyBeanPostProcessorsBeforeInitialization

3. 初始化方法 invokeInitMethods

4. applyBeanPostProcessorsAfterInitialization

getBeanPostProcessors()  数组不为空  里面有AbstractAutoProxyCreator  继承了procecss

初始化后 AOP

 

cglib生产代理对象

Spring 5.x中AOP默认依旧使用JDK动态代理
SpringBoot 2.x开始,AOP为了解决使用JDK动态代理可能导致的类型转换异常,而使用CGLIB。
在SpringBoot 2.x中,AOP如果需要替换使用JDK动态代理可以通过配置项spring.aop.proxy-target-class=false来进行修改,proxyTargetClass配置已无效。
 

放入concurrentHashMap

产生bean对象

1.bean 创建

2.spring 推断构造方法

在spring创建中,当出现多个构造方法时,如果没有默认构造方法,会出现报错

可以采用Autowawired实现指定对应的构造方法

或者

如果采用xml配置 也可以指定对应的构造方法

3.bean的获取 

在缓存池中,存在一个currentHashMap  保存着bean

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。