在源码深度解析Spring Bean的加载 中对Bean的加载源码进行了梳理,在本文将对bean的创建进行梳理
在doGetBean()方法中createBean()方法准备创建bean,调用源码如下:
createBean() 方法的源码如下:
从代码中可以得出,createBean() 方法涉及4个步骤:
步骤一: 根据设置的class属性或者根据className来解析Class.
步骤二: 对override属性进行标记及验证.
在spring 配置中存在lookup-method和replace-method 两个配置功能,而这两个配置的加载其实就是将配置统一存放在BeanDefinition中methodOverrides属性中,prepareMethodOverrides()方法实现原理就是在bean实例化的时候如果检测到存在methodOverrides属性,会动态地为当前bean生成代理并使用对应的拦截器为bean做增强处理,代码如下:
此处方法设置得十分巧妙, 巧妙之处是Spring将一部分的方法匹配工作在这里完成, 如果当前类职工的方法只有一个的时候就设置重载方法没有被重载,这样在后续被调