IOC与AOP理解与实现
Posted qinzhenyu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IOC与AOP理解与实现相关的知识,希望对你有一定的参考价值。
一、ioc理解:
IoC,(Inverse of Control)控制反转,其包含两个内容:其一是控制,其二是反转。在程序中,被调用类的选择控制权从调用它的类中移除,转交给第三方裁决。这个第三方指的就是Spring的容器。IoC另解,依赖注入(Dependency Injection),调用类对被调用类的依赖关系由第三方注入,以移除调用类对被调用类的引用。
二、aop理解:
aop,面向切面编程(也叫面向方面):Aspect Oriented Programming(AOP),是目前软件开发中的一个热点。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。 AOP是OOP的延续,是(Aspect Oriented Programming)的缩写,意思是面向切面(方面)编程。主要的功能可用到:日志记录,性能统计,安全控制,事务处理,异常处理等等。 主要的意图是:将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑代码中划分出来,通过对这些行为的分离,我们希望可以将它们独立到非指导业务逻辑的方法中,进而改 变这些行为的时候不影响业务逻辑的代码。
aop框架具有的两个特征:
1.各个步骤之间的良好隔离性
2.源代码无关性
1、AOP相关概念:
1)方面(Aspect):一个关注点的模块化,这个关注点实现可能另外横切多个对象。事务管理是J2EE应用中一个很好的横切关注点例子。方面用Spring的Advisor或拦截器实现。
2)切入点(Pointcut):指定一个通知将被引发的一系列连接点的集合。
3)连接点(Joinpoint):程序执行过程中明确的点,如方法的调用或特定的异常被抛出。
4)通知(Advice):在特定的连接点,AOP框架执行的动作。
5)目标对象(Target Object):包含连接点的对象,也被称作被通知或被代理对象。
6)AOP代理(AOP Proxy):AOP框架创建的对象,包含通知。在Spring中,AOP代理可以是JDK动态代理或CGLIB代理。
7)引入(Introduction):添加方法或字段到被通知的类。Spring允许引入新的接口到任何被通知的对象。
8)编织(Weaving):组装方面来创建一个被通知对象。
什么是DI机制?
依赖注入(Dependecy Injection)和控制反转(Inversion of Control)是同一个概念,具体的讲:当某个角色需要另外一个角色协助的时候,在传统的程序设计过程中,通常由调用者来创建被调用者的实例。但在spring中创建被调用者的工作不再由调用者来完成,因此称为控制反转。创建被调用者的工作由spring来完成,然后注入调用者
因此也称为依赖注入。
spring以动态灵活的方式来管理对象 , 注入的两种方式,设置注入和构造注入。
设置注入的优点:直观,自然
构造注入的优点:可以在构造器中决定依赖关系的顺序。
以上是关于IOC与AOP理解与实现的主要内容,如果未能解决你的问题,请参考以下文章