spring生命周期
2017-01-05 15:02:21 0 举报
spring生命周期
作者其他创作
大纲/内容
doGetBean
getBean
createBeanInstance
\t\t\t\t\t\t\t\t\t
InstantiationAwareBeanPostProcessor调用postProcessBeforeInstantiation方法【构造器】调用Person的构造器实例化InstantiationAwareBeanPostProcessor调用postProcessAfterInstantiation方法InstantiationAwareBeanPostProcessor调用postProcessPropertyValues方法【注入属性】注入属性address【注入属性】注入属性name【注入属性】注入属性phone【BeanNameAware接口】调用BeanNameAware.setBeanName()【BeanFactoryAware接口】调用BeanFactoryAware.setBeanFactory()BeanPostProcessor接口方法postProcessBeforeInitialization对属性进行更改!InstantiationAwareBeanPostProcessor调用postProcessBeforeInitialization方法【InitializingBean接口】调用InitializingBean.afterPropertiesSet()【init-method】调用的init-method属性指定的初始化方法BeanPostProcessor接口方法postProcessAfterInitialization对属性进行更改!InstantiationAwareBeanPostProcessor调用postProcessAfterInitialization方法
applyPropertyValues
finishBeanFactoryInitialization
public class MyBeanPostProcessor implements BeanPostProcessor { public MyBeanPostProcessor() { super(); System.out.println(\"这是BeanPostProcessor实现类构造器!!\
public class BeanLifeCycle { public static void main(String[] args) { System.out.println(\"现在开始初始化容器\"); @SuppressWarnings(\"resource\")\t\tClassPathXmlApplicationContext factory = new ClassPathXmlApplicationContext(\"beans.xml\"); System.out.println(\"容器初始化成功\"); //得到Person,并使用 Person person = factory.getBean(\"person\
测试代码:
resolveBeforeInstantiation
这是BeanPostProcessor实现类构造器!!这是InstantiationAwareBeanPostProcessorAdapter实现类构造器!!
销毁bean
public class MyInstantiationAwareBeanPostProcessor extends InstantiationAwareBeanPostProcessorAdapter { public MyInstantiationAwareBeanPostProcessor() { super(); System.out .println(\"这是InstantiationAwareBeanPostProcessorAdapter实现类构造器!!\
这是BeanFactoryPostProcessor实现类构造器!!BeanFactoryPostProcessor调用postProcessBeanFactory方法
invokeBeanFactoryPostProcessors
DefaultListableBeanFactory.preInstantiateSingletons() line: 597\t
DefaultSingletonBeanRegistry.getSingleton
.populateBean
public class MyBeanFactoryPostProcessor implements BeanFactoryPostProcessor { public MyBeanFactoryPostProcessor() { super(); System.out.println(\"这是BeanFactoryPostProcessor实现类构造器!!\"); } public void postProcessBeanFactory(ConfigurableListableBeanFactory arg0) throws BeansException { System.out .println(\"BeanFactoryPostProcessor调用postProcessBeanFactory方法\"); BeanDefinition bd = arg0.getBeanDefinition(\"person\"); bd.getPropertyValues().addPropertyValue(\"phone\
AbstractAutowireCapableBeanFactory.createBean
AbstractAutowireCapableBeanFactory.doCreateBean
收藏
0 条评论
下一页