Spring 笔记(四)AOP
前言
横切关注点

使用 @AspectJ 定义切面。
同时还需要在配置类上应用 @EnableAspectJAutoProxy 注解,启用 AOP 自动代理。(不添加它的话,@AspectJ 注解的类只会被当作普通 Bean)
定义切点
使用 @Pointcut 定义切点,其参数为切点表达式,切点表达式由以下三大部分组成:

通配符
*:匹配任意非空白字符..:匹配任意数量的子包或者参数。+:匹配指定类及其子类。(感觉一般是用在表达式末尾)
运算符
与或非
指示器 (designators)

重点是 exectution,其他的可以用的时候再查
添加通知 (Advice)

环绕通知的 ProceedingJoinPoint 参数
环绕通知方法必须有一个 ProceedingJoinPoint 参数,并且要在前置通知完成后,调用该对象的 proceed() 方法,该方法会将控制权返回给切点方法。切点方法执行完毕后,会继续执行 proceed() 方法后的代码。
proceed() 方法就相当于前置通知和后置通知的分界点。
环绕通知的代码,通常都会写在一个 try-catch 块里,如果运行抛出异常,catch 块的内容即相当于 AfterThrowing 通知。
处理通知中的参数
从命令切点到通知方法的参数转移:args 指示器
代理
待续
参考
- Spring 实战 第4版
- Aspect Oriented Programming with Spring
- 探秘 Spring AOP - 慕课网
Spring 笔记(四)AOP的更多相关文章
- Spring笔记:AOP基础
Spring笔记:AOP基础 AOP 引入AOP 面向对象的开发过程中,我们对软件开发进行抽象.分割成各个模块或对象.例如,我们对API抽象成三个模块,Controller.Service.Comma ...
- Spring笔记(四)SpingAOP
需要的Jar包(String3.2) com.springsource.net.sf.cglib-2.2.0.jar // 作用于cglib方式的动态代理 com.springsource.org.a ...
- Spring笔记四
Spring-04 1.Spring整合Junit ①导入依赖 <!-- junit --> <dependency> <groupId>junit</gro ...
- Spring笔记(三)AOP前篇之动态代理
AOP思想是将程序中的业务代码与服务代码进行分离,在运行时进行结合.比较强调程序的层次结构,是一种面向切面的编程.而在AOP实现的底层主要用到了动态代理,而动态代理又分为JDK动态代理和CGLIB动态 ...
- Spring学习笔记(四)—— Spring中的AOP
一.AOP概述 AOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善.O ...
- J2EE进阶(十四)超详细的Java后台开发面试题之Spring IOC与AOP
J2EE进阶(十四)超详细的Java后台开发面试题之Spring IOC与AOP 前言 搜狐畅游笔试题中有一道问答题涉及到回答谈谈对Spring IOC与AOP的理解.特将相关内容进行整理. ...
- Spring学习笔记之aop动态代理(3)
Spring学习笔记之aop动态代理(3) 1.0 静态代理模式的缺点: 1.在该系统中有多少的dao就的写多少的proxy,麻烦 2.如果目标接口有方法的改动,则proxy也需要改动. Person ...
- Spring学习笔记四:SpringAOP的使用
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6776247.html 一:AOP基础概念 (1)通知(增强)Advice 通知,其实就是我们从众多类中提取出 ...
- Spring学习笔记2—AOP
1.AOP概念 AOP(Aspect Oriented Programming):面向切面编程,AOP能够将那些与业务无关,却为业务模块所共同调用的应用(例如事务处理.日志管理.权限控制等)封装起来, ...
- Spring ( 四 )Spring的AOP动态代理、切面编程
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一.AOP切面编程 1.什么是AOP AOP是面向切面编程.全称:Aspect Oriented Pro ...
随机推荐
- 2018.7.3 JS实现增删改查没有连接数据库
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- SQL Server 2008 R2 附加数据库 “尝试打开或创建物理文件 拒绝访问”的解决办法
其实是来自一篇SQL Server 2005同样错误的帖子,不过试了在SQL Server 2008 R2下面也有效,记录一下. 解决方法: 在所有程序—Microsoft SQL Server 20 ...
- 5.2 Array类型
◆ 创建数组的基本方式有两种. ①第一种是使用Array构造函数,new关键字可省略 var colors = new Array(); var colors = new Array(20); // ...
- CentOS6.5 配置IP的两种方式
1.dhcp动态获取ip 编辑配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0 ,配置如下: [root@localhost ~]# vi /etc/sys ...
- centos install rtl8188ce driver
1.导入公钥,注意大小写. rpm --import http://elrepo.org/RPM-GPG-KEY-elrepo.org 2.安装ELRepo库. rpm -Uvh http://elr ...
- vs2012或vs2013调试卡 关闭调试卡
以前vs2013就有这个问题.没有解决.今天又装了vs2012.又遇到了.特别郁闷. 今天一定要解决.网上百度了.很久.可能关键字有问题.没有找到好的办法. 找到的办法有.显卡问题.不是管理员运行问题 ...
- 实例:关于ALV控件可编辑的整理
使ALV控件中的内容可编辑 这应该是一个非常有用的功能,这样我们便可以用它来代替table control来编出一些有这现成功能的界面来.实际上,让alv中的内容可以被编辑与alv的事件无关.但是经常 ...
- jdbc学习笔记01
回顾: day01-03,在上一篇文章文末 day04: 分组 group by 统计每个部门的平均工资: select deptno,avg(sal) from emp group by deptn ...
- 【CodeBase】PHP打印所有用户自定义常量
print_r(get_defined_constants(true)['user']);
- git push 时 fatal: Unable to create 'D:/phpStudy/WWW/green_tree/.git/index.lock': File exists.解决办法
找到自己的项目,找到.git文件夹,进去把目标文件删除即可 或者使用rm -rf 命令(如果没有那个文件件或者文件,将隐藏文件打开就可以看到了)