aop初探

栏目: Java · 发布时间: 5年前

内容简介:在本周的项目中第一次尝试了aop这个鼎鼎大名的东西,以前一直觉得这个东西会很难理解,就没有接触,不过再真正接触以后发现基本的使用还是很简单的,当然有这种感觉少不了学长的帮助,感谢张喜硕学长。aop是什么呢?用于干什么?AOP的理念:就是将分散在各个业务逻辑代码中相同的代码通过横向切割的方式抽取到一个独立的模块中。

在本周的项目中第一次尝试了aop这个鼎鼎大名的东西,以前一直觉得这个东西会很难理解,就没有接触,不过再真正接触以后发现基本的使用还是很简单的,当然有这种感觉少不了学长的帮助,感谢张喜硕学长。

aop

aop是什么呢?用于干什么?

AOP的理念:就是将分散在各个业务逻辑代码中相同的代码通过横向切割的方式抽取到一个独立的模块中。

aop初探 (图片引自 Spring AOP就是这么简单啦

即aop的作用就是去掉代码的冗余,使程序的结构更加清晰。虽然去除冗余代码也可一通过抽象继承来实现,但这会让你继承或实现一些和业务并不相关的类或接口。

spring aop的用法

spring的aop是通过动态代理实现的。

代理模式:

比如A对象要做一件事情,在没有代理前,自己来做,在对A代理后,由A的代理类B来做。代理其实是在原实例前后加了一层处理,这也是AOP的初级轮廓。

代理又分为静态代理和动态代理,这里不再细说。

而要如何在spring中使用aop呢?不要着急,接着往下看:

首先

便是要知道切面应该用在那了,对此你可以使用很多方法:

execution:用于匹配方法执行的连接点;

within:用于匹配指定类型内的方法执行;

this:用于匹配当前AOP代理对象类型的执行方法;注意是AOP代理对象的类型匹配,这样就可能包括引入接口也类型匹配;

target:用于匹配当前目标对象类型的执行方法;注意是目标对象的类型匹配,这样就不包括引入接口也类型匹配;

args:用于匹配当前执行的方法传入的参数为指定类型的执行方法;

@within:用于匹配所以持有指定注解类型内的方法;

@target:用于匹配当前目标对象类型的执行方法,其中目标对象持有指定的注解;

@args:用于匹配当前执行的方法传入的参数持有指定注解的执行;

@annotation:用于匹配当前执行方法持有指定注解的方法;

就像这样:

aop初探

当然关于各个参数的具体用法,可以另写一篇文章了,如果想要了解可以参看 这篇文章

在上面的方法中就是切了有 HostOwnerCheck 这个注解的方法

aop初探

然后

然后就是编写你对这个方法有些什么操作,可以分别编写方法执行前,执行后……要做什么

比如下面就是

方法执行前判断是否有权限,如果没有就抛出一个方法:

aop初探

这样,一个简单的切面就完成了。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Java技术手册(第6版)

Java技术手册(第6版)

Benjamin J Evans、David Flanagan / 安道 / 人民邮电出版社 / 2015-12-1 / 79.00

《Java技术手册 第6版》为《Java 技术手册》的升级版,涵盖全新的Java 7 和Java 8。第1部分介绍Java 编程语言和Java 平台,主要内容有Java 环境、Java 基本句法、Java 面向对象编程、Java 类型系统、Java的面向对象设计、Java 实现内存管理和并发编程的方式。第2部分通过大量示例来阐述如何在Java 环境中完成实际的编程任务,主要内容有编程和文档约定,使......一起来看看 《Java技术手册(第6版)》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具