bean生命周期:
简单点说就是:bean的实例化–>bean的初始化–>bean的使用–>bean的销毁
实例化:也就是new一个对象
属性注入:Spring上下文对实例化的bean进行配置(IOC注入)
设置beanId:如果实现BeanNameAware接口,调用setBeanName()方法设置ID
调用BeanFactoryAware.setBeanFactory(setBeanFactory(BeanFactory):可以用这个方式来获取其它Bean,只需在Spring配置文件中配置一个普通的Bean就可以;
调用ApplicationContextAware.setApplicationContext(ApplicationContext):与BeanFactoryAware.setBeanFactory同样作用,但是ApplicationContextAware是子接口,可以实现更多接口;
实例化之前调用:BeanPostProcessor.postProcessBeforeInitialization(Object obj, String s)方法调用,
实例化:如果在spring配置中还配置了init-method属性,会自动调用该方法;
实质化之后调用:如果关联BeanPostProcessor接口,调用postProcessAfterInitialization(Object obj, String s)方法,
注:前面这里我们就完成bean的实例化;
bean的销毁:当bean不再被使用时,就会调用destroy()方法;
bean销毁调用方法:如果配置了destroy-method方法,会自动调用该方法;