JavaEE-SSM:025 面向切面编程

白话切面编程:

切面要做的事就是,监听某个事件,对某个事件发生前,发生后,成功结束后,发生异常后,结束后进行你想要的操作,并且,不需要被监听的事件显式调用这些操作,即,这些操作都是自动执行的,就好像被监听的事件都不知道一样。

样例:

对于数据库操作涉及到事务等概念的时候,需要一大堆的样板代码:

利用aop,我们可以将连接数据库,释放数据库连接等操作去掉,同时,没有异常发生的话,自动提交事务,否则,自动回滚。这样可以达到简化DAO的效果:

AOP术语

切面:切面就是aop工作环境,在什么层面进行工作。

通知:就是事件发生前后要做的事情。

切点:被监听的方法就是切点。

连接点:判断条件,判断哪些是切点。

织入:生成代理对象的过程。

使用注解的方式实现AOP

1.创建切点(一般都是接口)。

2.创建切面

execution就是判断条件

第一个*是任意返回值

(..)表示任意参数

使用PointCut代替重复的判断条件:

测试Aop

开启AspectJ并使用JavaConfig

给AOP方法传递参数

被监听方法:

AOP方法:

引入:

在执行AOP之前进行检查

1.定义检查接口

2.定义实现

3.添加检查接口到切面

4.使用

 

多切面

可以使用@Order(n)注解次序

效果:

猜你喜欢

转载自blog.csdn.net/Day_and_Night_2017/article/details/88569781