IOC与AOP理解与实现

一、ioc理解:

  IoC,(Inverse of Control控制反转,其包含两个内容:其一是控制,其二是反转。在程序中,被调用类的选择控制权从调用它的类中移除,转交给第三方裁决。这个第三方指的就是Spring的容器。IoC另解,依赖注入Dependency Injection),调用类对被调用类的依赖关系由第三方注入,以移除调用类对被调用类的引用。

二、aop理解:

aop,面向切面编程(也叫面向方面)Aspect Oriented Programming(AOP),是目前软件开发中的一个热点。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。  AOPOOP的延续,是(Aspect Oriented Programming)的缩写,意思是面向切面(方面)编程。主要的功能可用到:日志记录,性能统计,安全控制,事务处理,异常处理等等。   主要的意图是:将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑代码中划分出来,通过对这些行为的分离,我们希望可以将它们独立到非指导业务逻辑的方法中,进而改 变这些行为的时候不影响业务逻辑的代码。

aop框架具有的两个特征: 
1.各个步骤之间的良好隔离性 
2.源代码无关性 

1AOP相关概念:

      1)方面(Aspect):一个关注点的模块化,这个关注点实现可能另外横切多个对象。事务管理是J2EE应用中一个很好的横切关注点例子。方面用SpringAdvisor或拦截器实现。

      2)切入点(Pointcut):指定一个通知将被引发的一系列连接点的集合。

      3)连接点(Joinpoint):程序执行过程中明确的点,如方法的调用或特定的异常被抛出。

      4)通知(Advice):在特定的连接点,AOP框架执行的动作。

      5)目标对象(Target Object):包含连接点的对象,也被称作被通知或被代理对象。

      6AOP代理(AOP Proxy):AOP框架创建的对象,包含通知。在Spring中,AOP代理可以是JDK动态代理或CGLIB代理。

      7)引入(Introduction):添加方法或字段到被通知的类。Spring允许引入新的接口到任何被通知的对象。

      8)编织(Weaving):组装方面来创建一个被通知对象。

 

什么是DI机制? 
依赖注入(Dependecy Injection)和控制反转(Inversion of Control)是同一个概念,具体的讲:当某个角色需要另外一个角色协助的时候,在传统的程序设计过程中,通常由调用者来创建被调用者的实例。但在spring中创建被调用者的工作不再由调用者来完成,因此称为控制反转。创建被调用者的工作由spring来完成,然后注入调用者 

因此也称为依赖注入。 
spring以动态灵活的方式来管理对象 , 注入的两种方式,设置注入和构造注入。 
设置注入的优点:直观,自然 
构造注入的优点:可以在构造器中决定依赖关系的顺序。 

原文地址:https://www.cnblogs.com/qinzhenyu/p/11743560.html