您的位置:首页 > 编程语言 > Java开发

Spring Aop 简单例子

2012-08-06 17:43 211 查看
bean.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd" default-autowire="byName">

<!-- 切面 -->
<aop:aspectj-autoproxy/>

<!-- 通过注解方式实现 -->
<context:component-scan base-package="cn.nick.spring"></context:component-scan>

</beans>


MyInetepor.java 实现aop方法

package cn.nick.spring.Inetepor;

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Service;
import org.springframework.util.StopWatch;

@Aspect @Service
public class MyInetepor {

@Pointcut("execution(* cn.nick.spring..*.*(..))")
private void anyOldTransfer(){}// 这是一个切入点

@Before("anyOldTransfer()")
public void doAccessCheck() {
System.out.println("第一个切面练习!");
}

//环绕消息
@Around("anyOldTransfer()")
public Object profile(ProceedingJoinPoint pjp) throws Throwable {
StopWatch sw = new StopWatch(getClass().getSimpleName());
try {
sw.start(pjp.getSignature().getName());
return pjp.proceed();
} finally {
sw.stop();
System.out.println(sw.prettyPrint());
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: