Spring是一个轻量级的框架,它的底层主要是由两大部分组成:IOC、AOP,提供了展示层Sping MVC和持久层Spring JBDC以及业务层事务管理等众多企业级应用技术,还能整合开源世界著名得第三方框架和类库,主键成为使用最多得JavaEE企业应用开发框架;AOP是OOP得延续,是软件开发中得一个热点,也是一个Sring框架中得一个重要内容,是函数式编程得一种衍生范型,利用AOP可以对业务逻辑得各个部分进行隔离,从而使得业务逻辑之间得耦合度降低,提供程序的可重用性,同时提高了开发效率。
SpringBean的生命周期总体分为四个阶段:实例化、属性注入、初始化、销毁
第一步【实例化Bean】:根据配置文件中Bean的定义,利用Java ReFlection反射技术创建Bean的实例
第二步【注入对象依赖的属性值(或对象)】
第三步【处理各种Aware接口】:Spring会检测该Bean是否实现了Aware接口,通过Aware类型接口,可以让Spring框架为当前Bean注入相对应的内容。
1.如果Bean实现BeanNameAware接口,会调用它实现的setBeanName(String beanId)方法,注入Bean名字
2.如果Bean实现BeanClassLoaderAware接口,调用setBeanClassLoader()方法,注入ClassLoader对象的实例
3.如果Bean实现BeanFactoryAware接口,会调用它实现的setBeanFactory()方法,注入的是Spring工厂
4.如果Bean实现ApplicationContextAware接口,会调用setApplicationContext()方法,注入Spring上下文
第四步【执行BeanPostProcessor前置对象】:如果想对Bean进行一些自定义的前置对象,那么可以让Bean实现,BeanPostProcessor接口,将会在该阶段调用postProcessBeforeInitialization(Object obj,String s)方法。
第五步【执行initializingBean初始化方法】:如果Bean实现了initializuingBean接口,执行afeterPropertiesSet()方法
第六步【执行init-method自定义初始化方法】:如果Bean在Spring配置文件中配置了init-method属性,则会自动调用其配置的初始化方法
第七步【执行BeanPostProcessor后置处理】:如果这个Bean实现了BeanPostProcessor接口,将会调用postProcessAfterInitialization(Object obj,String s)方法,由于这个方法实在Bean初始化结束后调用;
第八步【执行DisposableBean销毁Bean】:当Bean不再需要时,会经过清理阶段,如果Bean实现了DisposableBean这个接口,会调用其实现destory()方法执行销毁;
第九步【执行destory-method自定义销毁方法】:如果这个Bean的Spring配置中配置destroy-method属性,会自动调用其配置的自定义销毁方法