Spring的DI和AOP
Spring 为了降低Java开发的复杂性,Spring采取了以下4种关键策略: * 基于POJO的轻量级和最小入侵性编程; * 通过依赖注入和面向接口实现松耦合; * 基于切面和惯例进行声明式编程; * 通过切面和模板减少样板式代码; 几乎Spring所做的任何事情都可以追溯到上面一条或者多条策略。 DI: 控制反转(Inversion of Control,英文缩写为IoC)是框架的重要特征,并非 面向对象编程 的专用术语。它与依赖注入(Dependency Injection,简称 DI )和依赖查找(Dependency Lookup)并没有关系。如设计模式中的模板方法模式就是控制反转的一种。 控制反转即IoC (Inversion of Control),它把传统上由程序代码直接操控的对象的调用权交给容器,通过容器来实现对象组件的装配和管理。所谓的"控制反转"概念就是对组件对象控制权的转移,从程序代码本身转移到了外部容器。 IoC是一个很大的概念,可以用不同的方式来实现。其主要实现方式有两种:<1>依赖查找(Dependency Lookup):容器提供回调接口和上下文环境给组件。EJB和Apache Avalon都使用这种方式。<2>依赖注入(Dependency Injection):组件不做定位查询,只提供普通的Java方法让容器去决定依赖关系