AOP:面向接口编程
    IOC: 控制反转 由Spring容器为对象设置属性
    DI: 依赖注入
    http://spring.io/
    http://projects.spring.io/spring-framework/
    文档好
    Spring 视频-学习记录 - 图1
    Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架
    ——轻量:大小、开销轻量
    ——通过IoC控制反转达到松耦合
    ——提供了面向切面编程Aop的丰富支持,允许通过分离应用的业务逻辑与系统级服务进行内聚性的开发
    ——包含并管理应用对象的配置和生命周期,是一种容器
    ——将简单的组件配置、组合成为复杂的应用,是框架
    spring管理的所有对象叫做bean
    spring特点:简单、方便、快捷 spring框架管理应用对象的生命周期
    Spring 视频-学习记录 - 图2
    框架与类库的区别:
    框架一般是封装了逻辑、高内聚的,类库则是松散的工具组合;
    框架专注于某一领域,类库则是更通用;
    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通过创建动态代理,来生成代理类