容器
BeanFactory,classpathxmlappliaciotncontext,
int-method,initialaztion
aware支持,实现BeanFactoryAware接口,bean在实例化后会set注入BeanFactory,
invokeAwareMethods(beanName, bean)
if (bean instanceof BeanNameAware){bean.SetBeanName(beanName)}
if(bean instanceof BeanFactoryAware){bean.setBeanFactory(AbstractAutowireCapableBeanFactory.this)}
事务
<tx:annotation-driven /> 配置事务生效
registerBeanDefinitionParser("annotation-driven", new AnnotationDriverBeanDefinitionParser())
AopAutoProxyConfigurer.configureAutoProxyCreator
//创建TransactionAttibuteSource的bean
//创建TransactionInterceptor的bean
BeanPostProcessor
postProcessBeforeInitialization,postProcessAfterInitialization
applyBeanPostProcessorsBeforeInitialization(existingBean , beanName) Object result=existingBean
for(BeanPostProcessor processor: getBeanPostProessors())
processor.postProcessBeforeInitialization(result,beanName)
applypostProcessorsAfterInitialization(exsitingBean,beanName)
autoAware
instantiaBean
BeanFactory,factorybean区别 beanfactory容器,spring中提供了70多factorybean实现,实用的一些bean
Factorybean接口 getObject(),getObjectType(),isSingleton(),实现接口
<bean id="car" class="com.test.factorybean.CarFactortyBean" carInfo="超级跑车,400,20000000">
BeanDefination
BeanDefinationParser