package com.AspectTest.aop;
import java.util.Arrays;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.AfterThrowing;
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.Component;
@Aspect//声明这是一个切面
@Component//声明这是一个组件,泛指...可以去掉
public class AspectIntercepter {
@Pointcut(value="execution(* com.AspectTest.service.personServerImpl.*(..))")
private void pointCut(){//定义一个切入点 后面的通知直接引入切入点方法pointCut即可 personServerImpl下面的所有方法
}
//环绕通知(连接到切入点开始执行,下一步进入前置通知,在下一步才是执行操作方法)
@Around(value="pointCut()")
public Object doBasicProfiling(ProceedingJoinPoint pjp) throws Throwable{
System.out.println("@Around进入环绕通知...");
Object object = pjp.proceed();//执行该方法
System.out.println(pjp.getThis()+" 操作结束,退出方法;环绕[@Around]结束!...");
return object;
}
//前置通知(进入环绕后执行,下一步执行方法)
@Before(value="pointCut()")
public void doAccessCheck(JoinPoint joinPoint){
System.out.println("@Before前置通知:"+Arrays.toString(joinPoint.getArgs()));
}
//异常通知(出错时执行)
@AfterThrowing(value="pointCut()",throwing="ex")
public void doAfterThrow(JoinPoint joinPoint,Throwable ex){
System.out.println("@AfterThrowing例外通知(异常通知)"+Arrays.toString(joinPoint.getArgs()));
System.out.println("@AfterThrowing异常信息:"+ex);
}
//后置通知(返回之前执行)
@After(value="pointCut()")
public void after(){
System.out.println("@After后置通知...");
}
//最终通知(正常返回通知,最后执行)
@AfterReturning(value="pointCut()")
public void doAfter(){
System.out.println("@AfterReturning最终通知...End!");
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
springAOP代码实例
共23个文件
jar:10个
class:4个
java:4个
5星 · 超过95%的资源 需积分: 11 74 下载量 86 浏览量
2016-09-07
16:28:34
上传
评论
收藏 4.44MB RAR 举报
温馨提示
springaop详细解释以及代码实现demo,包含了所以aop通知类型
资源推荐
资源详情
资源评论
收起资源包目录
AspectTest.rar (23个子文件)
AspectTest
bin
com
AspectTest
SpringAopTest.class 967B
aop
AspectIntercepter.class 3KB
service
personServer.class 168B
personServerImpl.class 698B
applicationContext-aop.xml 912B
.settings
org.eclipse.jdt.core.prefs 629B
src
com
AspectTest
aop
AspectIntercepter.java 2KB
SpringAopTest.java 657B
service
personServer.java 118B
personServerImpl.java 284B
applicationContext-aop.xml 912B
.project 386B
.classpath 1KB
lib
spring-beans-4.0.0.RELEASE.jar 654KB
spring-core-4.0.0.RELEASE.jar 933KB
com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar 1.57MB
spring-context-4.0.0.RELEASE.jar 928KB
spring-aop-4.0.0.RELEASE.jar 343KB
commons-logging-1.1.1.jar 59KB
com.springsource.org.aopalliance-1.0.0.jar 5KB
spring-expression-4.0.0.RELEASE.jar 202KB
com.springsource.net.sf.cglib-2.2.0.jar 319KB
spring-aspects-4.0.0.RELEASE.jar 50KB
共 23 条
- 1
资源评论
- xiao_hai16012018-05-28等待测试中...
LPRJKF2014
- 粉丝: 157
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功