Bean的生命周期的11個步驟:
1.instantiate bean對象實例化
2.populate properties 封裝屬性
(第三步和第四步是讓自己設計的bean了解spring容器)
3.如果Bean實現BeanNameAware 執行 setBeanName
4.如果Bean實現BeanFactoryAware 或者 ApplicationContextAware 設置工廠 setBeanFactory 或者上下文對象 setApplicationContext
(第五步和第八步實現自 BeanPostProcessor,可以用來增強 Bean)
5.如果存在類實現 BeanPostProcessor(后處理Bean) ,執行postProcessBeforeInitialization
6.如果Bean實現InitializingBean 執行 afterPropertiesSet
7.調用<bean init-method="init"> 指定初始化方法 init
8.如果存在類實現 BeanPostProcessor(處理Bean) ,執行postProcessAfterInitialization
9.執行業務處理
10.如果Bean實現 DisposableBean 執行 destroy
11.調用<bean destroy-method="customerDestroy"> 指定銷毀方法 customerDestroy
在CustomerService類的add方法之前進行權限校驗?
------------------------------具體體現分割線----------------------------------------------------------------
1,bean instantiate 對象實例化

2,populate properties 封裝屬性
3,如果 Bean 實現了 BeanNameAware, 則執行 setBeanName;
4,如果 Bean 實現 BeanFactoryAware 或 ApplicationContextAware, 則執行設置工廠 setBeanFactory 或 設置上下文對象setApplicationContext
5,如果存在類實現了 BeanPostProcessor, 則執行 postProcessorBeforeInitialization

6,如果 Bean 實現了 InitializingBean 則執行 afterPropertiesSet
7,執行配置文件中 Bean 指定的初始化方法 <init-method="methodName">

8,如果存在類實現了 BeanPostProcessor, 則執行 postProcessorAfterInitialization

9,用戶自定義業務方法

10,如果 Bean 實現了 DisposableBean,調用 destory 方法.
11,調用配置文件中用戶自定義的摧毀方法

