AspectJ是AOP的框架,Spring建议使用
切入点表达式(execution())
execution(修饰符 返回值 包.类.方法名(参数) throws异常)
修饰符(一般省略)
public 公共方法
* 任意
返回值(不能省略)
void 无返回
String 返回
*
包
| 表达式 | 描述 |
|---|---|
| dao | dao包 |
| dao… | dao下所有子包(包含dao) |
| dao.*.insert | dao下子包 |
类
| 表达式 | 描述 |
|---|---|
| Service | 指定类 |
| *vice | 以vice结尾的类 |
| Ser* | 以Ser开头的类 |
| * | 任意类 |
方法名(不能省略)
| 表达式 | 描述 |
|---|---|
| addUser | 指定方法 |
| add* | 以add开头的方法 |
| *User | 以User结尾的方法 |
| * | 任意方法 |
(参数)
| 表达式 | 描述 |
|---|---|
| () | 无参 |
| (int) | 一个整形 |
| (…) | 参数任意 |
throws一般不写
通知类型
| 通知 | 描述 | 应用 |
|---|---|---|
| before | 方法执行前执行,如果通知异常,阻止方法运行 | 校验 |
| afterReturning | 方法执行后执行,可获得方法的返回值 | 数据处理,方法结果加工 |
| around | 方法执行前后分别执行 | |
| afterThrowing | 方法抛出异常后执行 | 包装异常信息 |
| after | 无论方法是否有异常都执行 |
博客介绍了Spring建议使用的AOP框架AspectJ,着重讲解了切入点表达式execution()。详细说明了表达式中各部分,如修饰符(一般省略,有public、*等)、返回值(不能省略,有void、String、*等)、包、类、方法名(不能省略)、参数及throws异常(一般不写)等内容。
1012

被折叠的 条评论
为什么被折叠?



