想写点AOP的东西,但是不知道从何说起,因为可写的实在是太多了。先说说什么是AOP吧。AOP是面向切面编程,也有叫面向方面编程,不过我觉得第一种叫法更加切合实际一些。
听起来似乎很抽象,其实它很好理解。
首先说说OOP,大家都知道的OOP叫面向对象编程。它的思想经常是体现在当两个以上的类或抽象类或接口有共有的属性或者方法时,把他们向上抽象,形成一个新的类或抽象类或接口。比如说,猩猩类和人类都有年龄和性别的属性,同时都有吃东西的方法,那么这两个类就可以向上抽象为一个动物类,这个类拥有年龄和和性别的属性,同时还有吃东西的方法。然后猩猩类和人类都继承动物类,OOP往往是这样去描述一些事物,说白了,它往往是一个向上抽象的过程,体现出来的是类和对象的宏观关系。
下面说AOP,大家想一个这样的例子,比如我们常见的JDBC操作,对于两个方法,一个是queryAll,另外一个是queryByPage,两个方法都是标准的JDBC操作,创建驱动,建立连接,创建STATEMENTS,创建RESULT,转化对象和关系型数据,关闭创建的对象。
对于queryAll和queryByPage两个方法都是如是操作,这样我们会发现,这两个方法惟独只有中间的转化对象和关系型数据是不同的,其他的几乎都一个样,如果我们希望类似使用OOP的形式,把其他相同的部分提取出来,不需要进行重复的操作,那么使用OOP的思想,想要向上抽象几乎是不可能的了,因为它们放生在方法内部,直接作用于方法体内,OOP只能对于那些类体内的元素进行向上抽象。不过大家可以想象一下,如果向上抽象不行的话,我们不妨考虑一下,如果把两个方法并排放置,进行横向切割,沿转化对象和关系型数据这个位置进行上切割和下切割,然后把切割出去的模块横向抽取,形成2个单独的方法,然后再根据需要把他们有机的织入到切割前的位置,这样就可以完以前一样的步骤,而且单独分出来的东西还可以再根据需要织入到其他的转化当中。这就是AOP的主要思想,也是一种横切思想,一种面向切面编程的思想。其实有很多我们常遇见的情况都可以依靠它来解决,比如说性能监测和事物的管理等。
今天先写这些吧!!呵呵,改天有时间继续写。
本人QQ:84627476 小平头爱小狗 有兴趣的可以加QQ一起讨论一下
分享到:
相关推荐
3、对spring aop认识模糊的,不清楚如何实现Java 自定义注解的 4、想看spring aop 注解实现记录系统日志并入库等 二、能学到什么 1、收获可用源码 2、能够清楚的知道如何用spring aop实现自定义注解以及注解的逻辑...
spring aop jar 包
描述一下Spring AOP? 在Spring AOP中关注点(concern)和横切关注点(cross-cutting concern)有什么不同? AOP有哪些可用的实现? Spring中有哪些不同的通知类型(advice types)? Spring AOP 代理是什么? 引介...
基于注解实现SpringAop基于注解实现SpringAop基于注解实现SpringAop
死磕Spring之AOP篇 - Spring AOP两种代理对象的拦截处理(csdn)————程序
spring aop切面拦截指定类和方法实现流程日志跟踪 一般情况下,在不侵入业务代码的情况下,需要做流程日志跟踪是比较合理的 采用springaop切面思想
AOP的意思就是面向切面编程。本文主要是通过梳理JDK中自带的反射机制,实现 AOP动态代理模式,这也是Spring AOP 的实现原理
springaop依赖的jar包,spring版本2.5.6,如果需要,可以下载使用,欢迎各位评论指出不足
springAOP配置实现动态代理,有利于熟悉动态代理原理,深入了解spring。
Spring源码最难问题:当Spring AOP遇上循环依赖.docx
spring aop的demo spring aop的demo
Spring AOP 入门 作者:廖雪峰
spring aop spring aop spring aop spring aop spring aop spring aop spring aop spring aop spring aop
Spring AOP 日志管理 实例LoggingThrowsAdvice.java
Spring AOP 几个不同使用方法的完整例子,使用Junit4c测试, 在我的博客上有不同配置组合的说明,可以参考
Spring AOP的实现机制中文版,动态代理及原理,自定义类加载器
Spring AOP简单demo 入门级的 advice
springAOP详解
spring aop 经典例子(原创),无论新手还是老手,可以快速对Spring AOP有个总体的认识。基于JDK1.6,Spring2.0.5,Eclipse IDE。
springaop多数据库读写分离