(1) 简单来说,Spring通过面向POJO编程、依赖注入、AOP和模板技术来简化Java的开发过程。
(2) Spring通过使用生产管理Bean来实现功能,Bean通过Spring容器生产。
(3) Spring容器主要分为两种:最简单的Bean工厂BeanFactory接口、最常用的应用上下文ApplicationContext接口
Bean的生命周期:
(1) Spring对Bean实例化。
(2) Spring将值和Bean的引用注入进Bean对应的属性中。
(3) 如果Bean实现了BeanNameAware接口,Spring将Bean的ID传递给setBeanName()接口方法。
(4) 如果Bean实现了BeanFactoryAware接口,Spring将调用setBeanFactory()接口方法,将BeanFactory容器实例传入。
(5) 如果Bean实现了ApplicationContextAware接口,Spring将调用setApplicationContext()接口方法,将应用上下文引用传入。
(6) 如果Bean实现了BeanPostProcessor接口,Spring将调用它们的postProcessBeforeInitialization()接口方法。
(7) 如果Bean实现了InlitializingBean接口,Spring将调用它们的afterPropertiesSet()接口方法。类似的,如果Bean使用init-method声明了初始化方法,该方法也会被调用。
(8) 如果Bean实现了BeanPostProcessor接口,Spring将调用它们的postProcessAfterInitialization()接口方法。
(9) Bean准备就绪,可以被程序使用。
(10) 容器关闭后,如果Bean实现了DisposableBean接口,Spring将调用它的destroy()接口方法。同样,如果Bean使用destroy-method声明销毁方法,该方法也会被调用。