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类测试一下:

    结果如下: 

  • 相关阅读:
    javaWeb css图文混排
    Junit 测试 @Test 红名问题
    java面试题:已知一个数组[2,4,6,2,1,5],将该数组进行排序(降序,不能用工具类进行排序),创建两条线程交替输出排序后的数组,线程名自定义
    【转】正则表达式的分组
    正则表达式基础
    IIS连接数修改
    【整理】fiddler不能监听 localhost和 127.0.0.1的问题
    【转】WKT、SRID、EPSG概念
    WPF中查找控件的扩展类
    【转】告别码农,成为真正的程序员
  • 原文地址:https://www.cnblogs.com/CY001/p/7678542.html
Copyright © 2011-2022 走看看