AOP(注解)【理解】【应用】【重点】

1.AOP注解配置流程

A.开启AOP配置支持注解@aspectj

核心配置文件中添加以下配置,功能等同于注解配置Bean的自动扫描路径

<aop:aspectj-autoproxy/>

B.将所有参与AOP配置的类声明为Spring控制的Bean

可以使用XML配置格式或注解格式

C.在切面类的类定义上方添加切面的声明

@Aspect

public class MyAdvice {…}

D.将切面类中的方法配置为指定类型的通知,配置时指定其切入点

@Before("execution(* cn.itcast.aop.annotation.UserImpl.add())")

public void before(JoinPoint jp) {

System.out.println("before");

}

2.配置公共的切入点

A.在切面类中声明一个方法(私有的),将该方法配置为切入点

@Pointcut("execution(* cn.itcast.aop.annotation.UserImpl.add())")

private void pt(){}

B.使用配置的切入点

@Before("引用切入点")

格式:切面类名.方法名()

范例:@Before("MyAdvice. pt ()")

3.注解开发通知的通知类别

前置通知              @Before(value="execution(* *..*.*(..))")

后置通知              @After(value="execution(* *..*.*(..))")

抛出异常通知       @AfterThrowing(value="execution(* *..*.*(..))",throwing="ex")

返回后通知           @AfterReturning(value="execution(* *..*.*(..))",returning="ret")

环绕通知              @Around(value="execution(* *..*.*(..))")

4.注解格式AOP顺序

总体顺序由上到下为下列描述顺序

around before

before

around after

after

afterReturning

实际开发以最终运行顺序为准

5.返回值与异常对象的获取方式

@AfterReturning(value="MyAdvice.pt()",returning="aa")

public void afterReturning(JoinPoint jp,Object aa){

System.out.println("afterReturning......."+aa);

}

SpringAOP的注解方式的更多相关文章

  1. 【SpringAop】【统一日志处理】注解方式理解以及使用

    [注意:本次代码的demo会存在百度网盘,由于公司的保密,禁止上传,所以仅本人可见] 目前公司在做数据资产项目,数据质量部分使用到了springaop做统一日志处理,以前对这块有了解,有点模糊不清,今 ...

  2. SpringAOP(注解方式实现面向切面编程)之常用Before、After、Around

    一.首先在Springmvc.xml文件中引入如下内容(本示例是在ssm框架基础上实现的) 1.引入命名空间 xmlns:aop="http://www.springframework.or ...

  3. spring与hibernate整合配置基于Annotation注解方式管理实务

    1.配置数据源 数据库连接基本信息存放到properties文件中,因此先加载properties文件 <!-- jdbc连接信息 --> <context:property-pla ...

  4. 注解方式实现Spring声明式事务管理

    1.编写实体类 public class Dept { private int deptId; private String deptName; public int getDeptId() { re ...

  5. 来一手 AOP 注解方式进行日志记录

    系统日志对于定位/排查问题的重要性不言而喻,相信许多开发和运维都深有体会. 通过日志追踪代码运行状况,模拟系统执行情况,并迅速定位代码/部署环境问题. 系统日志同样也是数据统计/建模的重要依据,通过分 ...

  6. spring 纯注解方式 与AOP

    spring注解方式 以前我也使用过纯注解方式.现在在这里做个记录 我们先认识几个我们都耳熟能详的注解 @configuration :从spring3.0这个注解就可以用于定义配置类,可以替换xml ...

  7. Spring声明式事务管理(基于注解方式实现)

    ----------------------siwuxie095                                 Spring 声明式事务管理(基于注解方式实现)         以转 ...

  8. 基于AspectJ的注解方式进行AOP开发

    -------------------siwuxie095                                     基于 AspectJ 的注解方式进行 AOP 开发         ...

  9. Spring 中使用XML配置方式和使用注解方式实现DI

    Spring容器给我们提供了很好的环境,我们只关注主要业务即可,其他的无需关注太多.今天刚学的DI DI(Dependency Injection):依赖注入 使用XML配置文件完成依赖注入 1.1普 ...

随机推荐

  1. js 数组常用方法说明

    //push 向数组最后添加一项 var arr = ['one', 'two', 'three']; arr.push("four"); console.log(arr);//[ ...

  2. 用户名 不在 sudoers文件中,此事将被报告。

    原文解决方法:http://blog.csdn.net/lincyang/article/details/21020295 CentOS7.0 用到sudo权限的时候出现的问题,如题. sudo命令可 ...

  3. java Object类学习

    /* * Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETA ...

  4. 如何使用Paste.Deploy

    转自:http://bingotree.cn/?p=100 1.Paste Deploy的一个组件,但是并不依赖于Paste的其它组件.其可以看成是一个独立的包.其主要用于通过一个配置文件完成WSGI ...

  5. hdoj 2051 Bitset

    Bitset Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  6. UIScrollView的属性总结

    contentSize是scrollview可以滚动的区域,比如frame = (0 ,0 ,320 ,480) contentSize = (320 ,960),代表你的scrollview可以上下 ...

  7. lazyload 图片延迟加载

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. Hive Metastore 代码简析

    1.  hive metastore 内部结构 1.1 包结构 从package结构来看,主要的5个package,让我们来看看这几个package的内容 (1) metastorepackage是m ...

  9. iOS---RunLoop深度剖析

    RunLoop 前言 RunLoop是iOS/OS开发中比较基础的一个概念,在苹果开发中用在事件处理,延迟加载,屏幕刷新等功能的处理,其实抛开语言,RunLoop是一个的架构模式,也就是RunLoop ...

  10. html样式表极大地提高了工作效率

    样式表极大地提高了工作效率 样式表定义如何显示 HTML 元素,就像 HTML 3.2 的字体标签和颜色属性所起的作用那样.样式通常保存在外部的 .css 文件中.通过仅仅编辑一个简单的 CSS 文档 ...