首先主要的阶段为:
    (1)加载——>(2)实例化——>(3)填充属性——>(4)初始化——>(5)销毁
    首先是两个比较大的扩展点,分别在实例化前后和初始化前后对所有的Bean都起作用。如下图所示:
    Bean生命周期扩展点小结 - 图1

    然后是 Aware 接口家族,因为这类的接口特别多,也是用户用来扩展最多的地方。

    BeanNameAware
    BeanClassLoaderAware
    BeanFactoryAware
    以上接口 xxAware,表示可以获取到 xx 资源。

    EnvironmentAware:得到环境的配置
    EmbeddedValueResolverAware:能够获取 Spring EL 解析器
    ApplicationContextAware:ApplicationContext 对象

    等等还有很多!