1.面试必杀技,讲一讲Spring中的循环依赖
2,@PostConstruct注解原理解析
- 实例化,对应方法:AbstractAutowireCapableBeanFactory中的createBeanInstance方法
- 属性注入,对应方法:AbstractAutowireCapableBeanFactory的populateBean方法
- 初始化,对应方法:AbstractAutowireCapableBeanFactory的initializeBean
protected Object doCreateBean(final String beanName, final RootBeanDefinition mbd, final @Nullable Object[] args)
throws BeanCreationException {
// 创建Bean的实例对象
if (instanceWrapper == null) {
instanceWrapper = createBeanInstance(beanName, mbd, args);
}
// 初始化一个Bean
Object exposedObject = bean;
try {
// 处理Bean的注入
populateBean(beanName, mbd, instanceWrapper);
// 处理Bean的初始化操作
initializeBean(beanName, exposedObject, mbd);
} catch (Throwable ex) {
}
}