资源:http://download.youkuaiyun.com/detail/bokmark/9418941
第一章
spring的实质其实是依赖注入(DI)和面向切面编程(AOP);
spring的根本使命:简化java开发;
如何简化java开发:
基于pojo的轻量级和最小侵入性编程
pojo:Plain Old Java Object
spring竭力避免因为自身的API而弄乱你的代码
避免强行让你继承一些父类或者实现一些接口来把你的代码弄乱通过依赖注入和面向接口实现松耦合
依赖注入:==> http://blessht.iteye.com/blog/1162131
1.构造器注入
2.set方法
3.静态工厂的方法注入
4.实例工厂的方法注入
如果一个对象只通过接口来实现依赖关系,那么就可以在这个对象毫不知情的情况下,使用不同的具体实现来进行替换基于切面和惯例进行声明式编程
面向切面被定义为应用程序分离关注点的技术。切面的定义:自我理解,将应用的各个组件组成一个切面,而这个切面被定义了必须做点什么事情发生在了什么时候
声明式编程:通过切面和模板减少样板式代码
Bean的生命周期
- 实例化
- 填充属性
- 调用BeanNameAware的setBeanName
- 调用BeanFactoryAware的setBeanFactory
- 调用ApplicationContextAware的setApplicationContext
- 调用BeanPostProcessore的初始化方法 postProcessBeforeInitialization
- 调用InitalizingBean的afterPropertiesSet方法(包括Init——method)
- 调用定制的初始化方法
- 调用BeanPostProcessore的后初始化方法 postProcessAfterInitialization
- Bean加载完成 可以使用
- 调用DisposableBean的Destroy方法
- 调用定制的销毁方法