Spring中Bean的创建
上图是一个bean的生命周期,其中有十一步:但是对于bean的生命周期经常用到的方法我掌握的有下面几种:
1、就是目标方法执行前后执行后,将进行初始化(调init-method())或销毁(destory-method())。有一点需要注意的就是:spring在调销毁方法时:只会销毁scope域(作用域)为singleton的bean,prototype多例的销毁方法需要交给客户端处理。
2、Spring提供一种机制,只要实现这个后处理Bean这个接口(),并将实现类提供给Spring容器,Spring容器将自动执行,在初始化方法前执行后处理Bean的Before(),在初始化方法后执行后处理bean的after()。Spring工厂。提供了一个eumn就相当是一个钩子,用于修改实例对象,在执行完after方法以后可以生成代理对象,也是AOP底层。
3、按照Bean定义配置信息,注入所有的属性,如果Bean实现了BeanNameAware接口,会回调该接口的setBeanName()方法,传入该Bean的id,此时该Bean就获得了自己在配置文件中的id,如果Bean实现了BeanFactoryAware接口,会回调该接口的setBeanFactory()方法,传入该Bean的BeanFactory,这样该Bean就获得了自己所在的BeanFactory.
4、如果Bean实现了ApplicationContextAware接口,会回调该接口的setApplicationContext()方法,传入该Bean的ApplicationContext,这样该Bean就获得了自己所在的ApplicationContext.
5、如果Bean实现了InitializingBean接口,则会回调该接口的afterPropertiesSet()方法。