zoukankan      html  css  js  c++  java
  • aop技术理解使用

    一、什么是AOP?

      aop技术是面向切面编程思想,作为OOP的延续思想添加到企业开发中,用于弥补OOP开发过程中的缺陷而提出的编程思想。AOP底层也是面向对象;只不过面向的不是普通的Object对象,而是特殊的AOP对象。AOP的关注点是组成系统的非核心通用服务模块(比如登录检查等),相对于普通对象,aop不需要通过继承、方法调用的方式来提供功能,只需要在xml文件中以引用的方式,将非核心服务功能引用给需要改功能的核心业务逻辑对象或方法中。最终实现对象的解耦。spring 中ioc技术实现了核心业务逻辑对象之间的解耦(如LoginAction与DaoImpl)

    二、AOP相对于OOP有什么好处?

       OOP,面对对象编程思想。OOP的问题不存在于开发阶段,在开发阶段和首次测试阶段中,使用OOP是效率最高也是最简单的一种方式。OOP问题体现在软件开发完毕之后的二次测试阶段,软件修改完毕之后,需要对软件中修改的方法进行重新测试,之后才可以上线运行。这时测试的对象是当前修改的方法 以及 和该方法具有级联/依赖关系的所有的其他方法。这样做显然了延长二次测试周期。 而使用aop在二次测试时,因为他是配置在xml文件中的,所以并不需要测试相关的所有类。

    三、spring中如何使用aop?

    我们使用一个例子来介绍下如何在spring中使用aop, 
    这里我们提供一个类StuAction,为这个类中的核心业务逻辑方法(addStu、delStu)添加登录检查的功能。

    spring中的AOP技术提供了四种基本类型的通知:

    • before通知 ~ 核心方法执行之前的通知 MethodBeforeAdvice
    • after通知 ~ 核心方法执行之后的通知 AfterReturningAdvice
    • around通知 ~ 核心方法执行时的通知before+after filter、interceptor都是一种around通知 MethodInterceptor
    • throws通知 ~ 核心方法执行出现异常之后执行的通知 ThrowsAdvice

    这四种通知我们都来测试下: 
    注意:在测试athrows通知时把StuAction中的int i = 1/0;取消注释,我们创建一个异常来进行测试。 
    另外,after通知主要用来核心方法调用结束后输出日志,所以这里用到了log4j 。

    log4j.properties

    好了,准备工作完毕,那我们如何在spring容器中配置aop呢? 
    重点的来了! 
    在applicationContext.xml中配置aop: 
    首先导入spring 中aop下所有包,log4j 包

    使用test类测试一下:

    结果如下: 

  • 相关阅读:
    关于技术的学习及批判 人工智能
    爱迪生如何看待手机程序员怎么用移动互联网 人工智能
    量子学习及思考4群体意识 人工智能
    程序员的出路 人工智能
    函数式编程学习之路(14) 人工智能
    量子学习及思考1开篇 人工智能
    函数式编程学习之路(16)图灵完备 人工智能
    开机启动
    动态连接库
    静态常量的问题
  • 原文地址:https://www.cnblogs.com/CY001/p/7678542.html
Copyright © 2011-2022 走看看