欢迎转载交流:http://www.cnblogs.com/shizhongtao/p/3476336.html

1.这里说一下aop的@Around标签,它提供了在方法开始和结束,都能添加用户业务逻辑的aop方法,@Around标签的方法包含一个 ProceedingJoinPoint 对象作为参数。其实你可以把这个对象理解为一个代理对象。当ProceedingJoinPoint 执行proceed()方法时候,也就会调用切面对象的方法。可能有点抽象。

 @Aspect
public class AroundExample { @Around("com.xyz.myapp.SystemArchitecture.businessService()")
public Object doBasicProfiling(ProceedingJoinPoint pjp) throws Throwable {
// 开始执行被加入切面的方法
Object retVal = pjp.proceed();
// retVal就是代理对象(被切面对象)的返回值
return retVal;
} }

上面的代理对象就是指("com.xyz.myapp.SystemArchitecture.businessService()")这个切入点的所有方法。

2.下面在说一下如何获得切入点的参数。

比如我的manager对下有一个sayHello方法,他接受一个String类型的属性。

public void sayHello(String name) {
System.out.println("Hello " + name);
}

如果我们在切入点配置想要得到这个name的值可以这样写:

// 表示在方法前面执行,name表示得到参数,而sayHllo中的"String"限定了只对有一个String类型的sayHello方法起作用
@Before("execution(public * com.bing.test..*.sayHello(String))&&args(name)")
public void before(String name) {
System.out.println(name);
name="@"+name;//这个并不能更改sayHello中的参数值,因为Sting是值传递。如果你想更改的话,可以把原来参数类型改为引用类型
System.out.println(name);
System.out.println("before Method");
}

前面我们说到了@Around标签,这个里面提供了一个代理的对象。如果用这个,就可以把原来的值给替换掉

 @Around("execution(public * com.bing.test..*.sayHello(..))&&args(name)")
public Object around(ProceedingJoinPoint pjp,String name) throws Throwable { System.out.println("around Method");
// start stopwatch
if(name instanceof String){ name="@"+name;
}
Object retVal = pjp.proceed(new Object[]{name});
// stop stopwatch return retVal;
}

spring aop配置及用例说明(3)的更多相关文章

  1. spring aop配置及用例说明(2)

    欢迎交流转载:http://www.cnblogs.com/shizhongtao/p/3473362.html 这里先介绍下几个annotation的含义, @Before:表示在切入点之前执行. ...

  2. spring aop配置及用例说明(1)

    欢迎转载交流,博客地址http://www.cnblogs.com/shizhongtao/p/3469776.html 首先,什么是aop,其实通俗一点讲就是,再方法执行时候我们加入其它业务逻辑.比 ...

  3. spring aop配置及用例说明(4)

    欢迎交流转载:http://www.cnblogs.com/shizhongtao/p/3476161.html 这里简单对xml的配置方式做一下描述.代码还是上一篇(http://www.cnblo ...

  4. Spring AOP配置方式

    AOP 面向切面编程,允许在 java 应用中的方法调用的前后做一些处理. 本文通过实例介绍两种主要的Spring AOP 配置方式:xml 方式配置,注解方式配置 XML 方式配置 1. 项目包类结 ...

  5. Java--简单的Spring AOP配置以及AOP事物管理,JDK/GCLib动态代理

    一.看一下简单的通过XML的AOP配置 1.首先创建一个简单的Student类 public class Student { private Integer age; private String n ...

  6. spring aop配置文档部分翻译

    欢迎转载交流: http://www.cnblogs.com/shizhongtao/p/3476973.html 下面的文字来自官方文档的翻译,具体事例以后奉上. Advisors "ad ...

  7. Spring——AOP配置时的jar包异常

    首先:这不是SSH整合的,这是单独配置Spring AOP的一个小例子. 所需要的jar包:如图: 我在这里出现的两个问题: 1.没有导入asm的jar包. 所报的异常为: java.lang.Cla ...

  8. Spring AOP配置简单记录(注解及xml配置方式)

    在了解spring aop中的关键字(如:连接点(JoinPoint).切入点(PointCut).切面(Aspact).织入(Weaving).通知(Advice).目标(Target)等)后进行了 ...

  9. perf4j+spring+aop 配置 注解方式

    今天将perf4j基于spring aop方式进入了接入,接入方法还是比较简单.具体配置如下: logback.xml <!--perf4j配置--> <appender name= ...

随机推荐

  1. Codeforces Round #329 (Div. 2) B. Anton and Lines 逆序对

    B. Anton and Lines Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/593/pr ...

  2. GoldenGate配置(一)之单向复制配置

    GoldenGate配置(一)之单向复制配置 环境: Item Source System Target System Platform Red Hat Enterprise Linux Server ...

  3. Android自定义radiobutton(文字靠左,选框靠右)

    <RadioButton android:id="@+id/rb_never" android:layout_width="fill_parent" an ...

  4. java 对象序列化

    java 对象序列化 package org.rui.io.serializable; import java.io.ByteArrayInputStream; import java.io.Byte ...

  5. 在VS2012中GridView的一个坑

    使用GridView的时候遇到了一个坑,一个增加一个选择按钮~貌似在某些情况下会出现一个是否允许选择的属性,貌似会默认为fals,然后就返回不了指定ID!坑,巨坑!但是今天居然找不到这个属性了,难道是 ...

  6. SQL用法总结

    1.创建数据库语句 create table persons( 'id' INT NOT NULL AUTO_INCREMENT, ) NOT NULL, ) NOT NULL, PRIMARY KE ...

  7. css预处理的引入与问题

    css的预处理越来越流行.sass,less,stylus这几个都使用方便. 我想使用他的原因,暂时最主要是为了@import的功能.现在的问题:因为产品太多,是个页面,有10个css.而这10个cs ...

  8. Linq 用法笔记

    Linq中怎么用 between…and? var query = from p in context.Parent from c in context.Child.Where(x => p.c ...

  9. javascript三种创建对象的方式

    javascript是一种“基于prototype的面向对象语言“,与java有非常大的区别,无法通过类来创建对象.那么,既然是面象对象的,如何来创建对象呢? 一.通过”字面量“方式创建. 方法:将成 ...

  10. ORM之PetaPoco错误--VS中NUGet程序包管理安装PetaPoco

    一般在Vs中使用PetaPoco的时候都是使用NuGet程序包管理来安装PetaPoco的,如果你在安装PetaPoco前设置了ConnectionString,那么PetaPoco中的T4模板会自动 ...