任何通过Spring容器实例化、组装和管理的Java对象都能称之为Spring Bean。
Bean可以看成是Spring应用中的一个普通Java对象,这个对象的创建、属性赋值、初始化、销毁等完整的生命周期是由Spring IOC容器来统一管理的,并非程序员手动控制。
Spring Bean的生命周期分为实例化、依赖注入、初始化以及销毁这4个固定不可逆的阶段。
当Spring容器启动时,会根据配置文件或者注解,先实例化Bean;
之后,Spring容器再通过注解(@Autowired)或者setter方法将Bean的依赖属性注入进来;
依赖注入完成后,如果Bean标注了@PostConstruct注解、实现了InitializingBean接口或者配置了init-method,Spring就会调用相应的初始化方法,完成Bean的初始化操作。
初始化完成后,Bean就进入到了就绪状态,可以被程序获取和使用了。
如果Bean标注了@PreDestroy注解、实现了DisposableBean接口或者配置了destroy-method,Spring会在容器关闭时调用对应的销毁方法,完成Bean的资源释放。