首先主要的阶段为:
(1)加载——>(2)实例化——>(3)填充属性——>(4)初始化——>(5)销毁
首先是两个比较大的扩展点,分别在实例化前后和初始化前后对所有的Bean都起作用。如下图所示:
然后是 Aware 接口家族,因为这类的接口特别多,也是用户用来扩展最多的地方。
BeanNameAware
BeanClassLoaderAware
BeanFactoryAware
以上接口 xxAware,表示可以获取到 xx 资源。
EnvironmentAware:得到环境的配置
EmbeddedValueResolverAware:能够获取 Spring EL 解析器
ApplicationContextAware:ApplicationContext 对象
等等还有很多!