zoukankan      html  css  js  c++  java
  • Spring之二:Spring AOP概述

    一、AOP概念回顾

      AOP是Aspect-Oriented Programming(面向方面编程)的简称,

    虽然可以利用面向对象的方法可以很好地组织代码,也可以通过继承关系实现代码重用,但是程序中总是会出现一些重复的代码,而且不太方便使用继承的方法把它们重用和管理起来。它们的功能重复并且需要作用在不同的地方,虽然可以对这些代码做一些简单的封装,使之成为一些公共函数,但是在这种显示的调用中,使用它们并不是很方便。

    在使用AOP后,不仅可以将这些重复的代码抽取出来单独维护,比起传统手段中,直接调用公用模块之外,通过AOP提出横切的概念,把模块功能证交化的同时,也在此基础上提供了一系列横切的灵活实现。

    AOP联盟的网站上提到了以下的AOP技术:

    • AspectJ:源代码和字节码基本的编织器,用户需要使用不同于java的新语言。
    • AspectWerkz:AOP框架,使用字节码动态编织和XML配置。
    • JBoss-AOP:基于拦截器和元数据的AOP框架,运行在JBoss应用服务器上。
    •  BCEL(Byte-Code Engineering Library):Java字节码操作类库
    • Javassist:java字节码操作类库;

     对应于现有的AOP实现方案,AOP联盟对它们进行了一定程度的抽象,从而定义出AOP体系结构,结合这个体系结构去了解AOP技术,对我们理解AOP的概念是非常有帮助的,这个AOP体系结构如下:

      在Spring AOP中,是使用java语言来实现增强对象与切面增强应用的,并为这两者的结合提供了配置环境。

    • 对于编织配置,可以使用IoC容器来完成。
    • 对于POJO对象的配置,本来就是Spring的核心IoC容器的强项。

    因此,对于使用Spring的AOP开发而言,使用POJO就能完成AOP任务。

    但是,对于其他的AOP实现方案,可能需要使用特定的实现语言、配置环境甚至是特定的编译环境。

  • 相关阅读:
    hibernate 笔记二
    log4j详解及简易搭建
    hibernate 笔记一
    【工作心得】timesten应用(安装配置篇)
    【转】boost 内存池
    【转】基于Socket的UDP和TCP编程介绍
    【工作心得】timesten应用(开发篇)
    【读书笔记】UNIX进程间通信
    【读书笔记】硬链接与软链接
    【转】Linux Socket编程
  • 原文地址:https://www.cnblogs.com/duanxz/p/3756547.html
Copyright © 2011-2022 走看看