首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

一个简略的aop demo

2012-12-23 
一个简单的aopdemo一个简单的 aop demo??spring 配置?xmlns:aophttp://www.springframework.org/schema/

一个简单的aop demo

一个简单的 aop demo

?

?

spring 配置

?

xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"


http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd

?

?

?

?

<!-- 注册aspectj -->

<aop:aspectj-autoproxy />

?

<!-- 注册代理过滤器 -->

<context:component-scan base-package="com.aspect.*">

<context:include-filter type="annotation"

expression="org.aspectj.lang.annotation.Aspect" />

</context:component-scan>

?

?

简单的环绕方式

?

@Around("execution(* com.aspect..*.add*(..))")

public Object aroundAdd(ProceedingJoinPoint pjp) throws Throwable {

// Class pt = (Class) pjp.getTarget();

Object retVal = pjp.proceed();

for (int i = 0; i < pjp.getArgs().length; i++) {

System.out.println(">>>around>>>参数:" + pjp.getArgs()[i]);

}

System.out.println(">>>aronud>>>方法名:" + pjp.getSignature());

System.out.println("SourceLocation:"+pjp.getSourceLocation());

System.out.println("StaticPart:"+pjp.getStaticPart());

System.out.println("this:"+pjp.getThis());

System.out.println("Target:"+pjp.getTarget().toString());

return retVal;

}

?

?

demo

?

?

?

public class TestDemo {

static String context = null;

static ApplicationContext applicationContext;

static {

context = "applicationContext.xml";// ehcache简单配置(命名空间)

?

applicationContext = new ClassPathXmlApplicationContext(context);

}

?

public static void main(String[] arg) {

System.out.println("start---");

IDemo demo = (IDemo) applicationContext.getBean("demo");

IUser iu = demo.getUserImpl();

if (iu != null) {

iu.addUser("风光");

demo.getUserImpl().findUser("Lucy") ;

}

}

}


?

附件是完整的demo

?

输出

?

?

start---

>>>>>>>> 增加用户--检查ing..........

参数:风光

方法名:addUser

---------权限检测--------------

>>>>>>>> 增加用户--检查完毕!未发现异常!..........

>>>around>>>参数:风光

>>>aronud>>>方法名:void com.aspect.service.IUser.addUser(String)

SourceLocation:org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint$SourceLocationImpl@1a1399

StaticPart:execution(void com.aspect.service.IUser.addUser(String))

this:com.aspect.service.impl.UserImpl@1551b0

Target:com.aspect.service.impl.UserImpl@1551b0

>>>>>>>> 准备搜查用户..........

Lucy

>>>>>>>> 搜查用户完毕..........

?

?

?

热点排行