AOP:面向接口编程
IOC: 控制反转 由Spring容器为对象设置属性
DI: 依赖注入
http://spring.io/
http://projects.spring.io/spring-framework/
文档好
Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架
——轻量:大小、开销轻量
——通过IoC控制反转达到松耦合
——提供了面向切面编程Aop的丰富支持,允许通过分离应用的业务逻辑与系统级服务进行内聚性的开发
——包含并管理应用对象的配置和生命周期,是一种容器
——将简单的组件配置、组合成为复杂的应用,是框架
spring管理的所有对象叫做bean
spring特点:简单、方便、快捷 spring框架管理应用对象的生命周期
框架与类库的区别:
框架一般是封装了逻辑、高内聚的,类库则是松散的工具组合;
框架专注于某一领域,类库则是更通用;
2-1 IOC及Bean容器
IoC本质就是要抛弃new的方法取得对象,通过配置来取得对象
Spring 的核心机制:依赖注入
依赖注入是目前最优秀的解耦方式,让Spring 的bean以配置文件的组织在一起
IOC: 控制反转 Inversion of Control
DI:依赖注入,Dependency Injection
其实是一个意思
依赖注入:
设值注入 property 调用setter方法
构造注入 costructor-arg 调用构造函数
建议采用设值注入为主,构造注入为辅的注入策略
Spring的AOP
支持将一些通用任务,如安全,事务,日志等集中式处理,提供了更好的复用
Aspect Orient Programming面向切面编程
交叉关注点
AspectJ Eclipse下面的一个开源子项目,AOP实现
ajc -d 编译,编译功能比javac更强大
编译时动态增强 的AOP框架 P648
运行时动态增强 的AOP框架
Spring AOP通过创建动态代理,来生成代理类