`
kong_bai
  • 浏览: 138934 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

AOP简介AOP是什么?

阅读更多
AOP是什么?

  Aspect-oriented programming (AOP) ,从名字上说类似oop Object Oriented Programming。AOP是OOP的延续,是Aspect Oriented Programming的缩写,意思是面向方面编程。而什么是方面哪?



方面也可以认为是关注点,在一个系统中存在很多关注点,比如记录日志,授权等。面向对象的趋势是使系统耦合越来越小,设计模式也是如此。然而,这些关注点是最普通的功能,也许会贯穿系统始终,使系统的开发,尤其是维护带来很多的问题,到处重复着相同的代码。
     比如,记录日志:
     public interface MyBizInterface { 
     
     public void myBizMethod(); 
} 

public class MyBizObject implements MyBizInterface { 
     
     private   Logger logger = Logger.getLogger(getClass().getName()); 
     
     public void myBizMethod(){ 
         
     try { 
         
         logger.info("start to execute..."); 
        
         //do something here
     
         logger.info("end processing...");  
     } catch (Exception e){ 
         
         logger.info("exception happends..."+e.getMessage()); 
        
     }    
     } 
} 

     上面的代码很简单,一个简单的业务逻辑myBizMethod(),当然我们需要记录日志,但是这样商业逻辑的代码和日志记录代码混合在一起,这给日后的维护带来一定的困难,同时存在大量的代码重复。
     同样是方面(关注点),应该有主次轻重之分,比如,上面的例子,显然业务逻辑比较重要,不过你非说日志记录重要也行。所以,我们应该把日志记录代码(次要)从重要的业务逻辑分离出来。要将这些代码分离就涉及到一个问题,我们必须知道商业逻辑代码何时被调用,这样我们好插入日志记录代码。一般来说要截获一个方法,我们可以采用回调方法或者动态代理。动态代理一般要更加灵活一些,目前多数的AOP Framework也大都采用了动态代理来实现。
     有了AOP,我们就可以拦截主要的业务逻辑,把我们不是特别重要的代码【注入】到里面去,AOP防止了代码变得混乱。
分享到:
评论

相关推荐

    (入门)什么是AOP?什么是代理模式?怎么设计日志拦截器?

    什么是代理模式?怎么设计日志拦截器?” 在编程领域,AOP(Aspect Oriented Programming,面向切面编程)是一种编程范式,它旨在提高代码的可重用性和模块化。AOP的核心思想是将关注点分离,即业务逻辑与系统级...

    SpringAOP是什么?为什么要有SpringAOP?

    为什么需要Spring AOP呢? 1. **代码解耦**:通过将横切关注点从核心业务逻辑中分离出来,可以减少代码之间的耦合度,使得代码更易于理解和维护。 2. **重用性**:切面可以被多个对象共享,提高了代码的重用性,...

    面向切面编程aop简介

    面向切面编程(AOP,Aspect Oriented Programming)是Spring框架的重要组成部分,它提供了一种在不修改原有业务代码的基础上,插入额外功能的编程模型。Spring AOP使得开发者能够更方便地实现如日志记录、事务管理、...

    aopalliance-1.0.jar及aopalliance源码

    **AOP Alliance简介** AOP Alliance是一个开源项目,它的全称是Aspect Oriented Programming(面向切面编程)Alliance,是Java平台上的一个接口集合,为面向切面编程的实现提供了一个统一的API。这个库的主要目的是...

    Spring AOP基础关于AOP是什么的理解

    Spring AOP 基础关于 AOP 是什么的理解 AOP(Aspect Oriented Programming 面向方面的编程)是一种实现横切面的工具,它是 OOP 的补充,而不是 OOP 的竞争对手。AOP 的出现是为了解决 OOP 中的缺陷,即 OOP 中的类...

    基于java的企业级应用开发:Spring AOP简介.ppt

    **Spring AOP 简介** 面向切面编程(AOP),全称为 Aspect-Oriented Programming,是一种编程范式,旨在解决传统面向对象编程(OOP)中的代码重复和分散问题。在OOP中,诸如事务管理、日志记录等功能往往会分散在多...

    aopalliance最新完整jar包

    在Java应用中,aopalliance.jar包扮演着至关重要的角色,它包含了一些核心接口,如`org.aopalliance.intercept.MethodInterceptor`和`org.aopalliance.aop.Advice`,这些接口定义了拦截器和通知的概念,它们是AOP的...

    Spring AOP切面编程简介

    **Spring AOP切面编程简介** 在Java世界中,面向切面编程(Aspect-Oriented Programming,简称AOP)是一种编程范式,它允许我们分离关注点,将横切关注点(如日志、事务管理、性能监控等)与业务逻辑代码解耦。...

    aop所依赖的所有包

    AOP(Aspect-Oriented Programming,面向切面编程)是一种编程范式,旨在减少代码的重复性和增强可维护性,特别是在处理系统中的横切关注点时。这些关注点,如日志、事务管理、安全检查等,往往分散在系统的各个部分...

    spring-aop.jar各个版本

    spring-aop-1.1.1.jar spring-aop-1.2.6.jar spring-aop-1.2.9.jar spring-aop-2.0.2.jar spring-aop-2.0.6.jar spring-aop-2.0.7.jar spring-aop-2.0.8.jar spring-aop-2.0.jar spring-aop-2.5.1.jar spring-aop-...

    spring aop spring aop

    在给出的XML配置中,`<aop:config>`元素开启AOP支持,而`<aop:aspect>`元素用于定义切面,其内部通过`<aop:pointcut>`定义切点,并通过`<aop:before>`和`<aop:after>`指定通知。 为了使用这些配置,我们需要在代码...

    44 Spring控制器Controller如何设置AOP?慕课专栏1

    在Spring框架中,AOP(面向切面编程)是一种强大的工具,允许开发者在不修改源代码的情况下添加额外的功能或监控代码,如日志、事务管理、权限检查等。然而,在实际项目开发中,有时可能会遇到Controller无法被AOP...

    Spring AOP 是什么?你都拿它做什么?.docx

    Spring AOP 是什么?你都拿它做什么?

    AOP简介文件.docx

    AOP编程模型 AOP(Aspect-Oriented Programming),即面向切面编程,是一种编程范式,它将关注点(Cross-Cutting Concerns)从业务逻辑中分离出来,实现模块化和松耦合的系统设计。AOP通过引入Aspect、Join Point、...

    反射实现 AOP 动态代理模式(Spring AOP 的实现原理)

    面向切面编程(AOP)是一种编程范式,旨在将横切关注点(如日志、安全等)与业务逻辑分离,从而提高模块化。AOP通过预定义的“切面”对横切关注点进行模块化,从而可以在不修改业务逻辑代码的情况下增加新功能。动态...

    aop介绍

    为什么需要 AOP? 使用 AOP 可以让我们从一个更高的抽象概念来理解软件系统,AOP 也许提供一种有价值的工具。可以这么说:因为使用 AOP 结构,现在 JBoss 4.0 的源码变得更加简洁、易维护、易扩展。 AOP 的优点 AOP...

    Spring AOP面向方面编程原理:AOP概念

    ### Spring AOP面向方面编程原理:AOP概念详解 #### 一、引言 随着软件系统的日益复杂,传统的面向对象编程(OOP)逐渐暴露出难以应对某些横切关注点(cross-cutting concerns)的问题。为了解决这一挑战,面向方面编程...

    AOP@Work AOP 工具比较

    面向切面编程(AOP,Aspect Oriented Programming)是一种编程范式,旨在通过将关注点分离,提高软件的模块化程度。AOP的核心是切面,它封装了横切关注点,如日志、事务管理、性能监控等,使得这些功能可以独立于主...

    spring-boot aop

    Spring Boot AOP(面向切面编程)是一种强大的设计模式,它允许我们在不修改现有代码的情况下,插入额外的功能或监控代码。在Spring框架中,AOP主要用于日志记录、事务管理、性能统计等场景。本示例是关于如何在...

    aopalliance

    一、AOPAlliance简介 AOPAlliance是一个开源项目,旨在为不同的AOP实现提供一个共同的接口,以便于在不同的AOP框架之间共享代码和实现互操作性。它定义了一些基础的AOP接口,如`org.aopalliance.intercept....

Global site tag (gtag.js) - Google Analytics