Spring框架下的两大重要知识点,分别是IOC和AOP,初学者一般很难把握,我也上网搜了相关的介绍,现整理如下,希望有所帮助。

1.依赖注入(IOC)

依赖注入是spring框架中的解耦的一种策略,称为DI或IOC(控制反转),主要有set方式(提供set和get方法)和constractor(构造方法)方式,它使得类与类之间以配置文件的形式组织在一起,而不是硬编码的方式,例如classA 中用到了classB如果写代码的话是new 一个classB,而用依赖注入的方式则是在applicationContext.xml里面写两个
<bean id="id1" class="A"><property name="B" ref="id2"></bean>
<bean id="id2" class="B"></bean>,就是在类A里原来需要new 的地方就不需要写了。
即赖注入是让Bean 与 Bean 之间以配置文件组织在一起,而不是以硬编码的方式耦合在一起
2.面向切面编程(AOP)
AOP、OOP在字面上虽然非常类似,但却是面向不同领域的两种设计思想。OOP(面向对象编程)针对业务处理过程的实体及其属性和行为进行抽象封装,以获得更加清晰高效的逻辑单元划分。
 
 
  
  而AOP则是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低
  
  耦合性
  
  的隔离效果。这两种设计思想在目标上有着本质的差异。
 
 
 
 
  
  上面的陈述可能过于理论化,举个简单的例子,对于“雇员”这样一个
  
  业务实体
  
  进行封装,自然是OOP/OOD的任务,我们可以为其建立一个“Employee”类,并将“雇员”相关的属性和行为封装其中。而用AOP设计思想对“雇员”进行封装将无从谈起。
 
 
 
 
  
  同样,对于“权限检查”这一动作片断进行划分,则是AOP的目标领域。而通过OOD/OOP对一个动作进行封装,则有点不伦不类。
 
 
 
 
  
  换而言之,OOD/OOP面向名词领域,AOP面向动词领域。