spring bean 生命周期
-
加载分析配置文件,创建配置的Bean 实例。
-
分析bean间依赖关系,执行相关的bean 依赖注入
-
检查受管Bean 是否实现BeanNameAware 接口。是,则执行setBeanName(String name) 方法,将 name 注入其中,以让该Bean实例识别在配置文件中定义的名字。
-
检查受管Bean 是否实现BeanFactoryAware 接口。是,则执行setBeanFactory(BeanFactory beanFactory) 方法
-
检查容器中是否注册了BeanPostProcessor接口的类实例。是,则变量容器中配置的所有Bean并做为参数,输入到Object postProcessBeforeInitialization(Object bean, String beanName)方法中进行处理。
-
检查受管Bean 是否实现InitializingBean接口。是,则执行void afterPropertiesSet()方法
-
是否指定init-method 方法,是,则调用该方法,否则调用默认构造方法
-
检查容器中是否注册了BeanPostProcessor接口的类实例。是,则执行Object postProcessAfterInitialization(Object bean, String beanName)方法
-
检查受管Bean 是否实现DisposableBean接口。是,则执行void destroy()方法
-
是否指定destroy-Method 方法,是,则调用该方法