package com.tgb.aop;
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.aspectj.org.eclipse.jdt.internal.compiler.batch.Main.Logger;
import org.springframework.stereotype.Component;
@Aspect
@Component
public class LogAspect {
//private static final Logger LOGGER = LoggerFactory.getLogger(LogAspect.class);
int i=0;
@Pointcut("execution (* com.tgb.aop.RMBPayService.pay(..))")
public void publicPointcut(){
System.out.println("这里是切点。该方法只是一个标示,供@Pointcut注解依附。"+i++);
}
@Before("publicPointcut()")//里面的值是切点的定义方法。
public void before() {
System.out.println("支付前打印一点字.........");
}
@Before("publicPointcut()")//里面的值是切点的定义方法。
public void before2() {
System.out.println("支付前打印一点字.33223232........");
}
@After("publicPointcut()")
public void afterAdvice() {
System.out.println("后置通知,支付完成了呵呵............");
}
// 注意,此处returning后的值必须与方法参数名的值一致
@AfterReturning(value = "execution(public String com.tgb.aop.*.pay(..))", returning = "retVal")
public void afterReturning(String retVal) {
System.out.println("支付结果如何,检查检查:后置" + retVal);
}
@AfterThrowing(pointcut = "publicPointcut()", throwing = "ex")
public void afterThrowing(Exception ex) {
System.out.println(ex.getMessage());
}
// 此方法必须有返回值,否则会使得被代理的方法的返回值变为null,在此方法中可以修改返回值
@Around("publicPointcut()")
public Object around(ProceedingJoinPoint joinPoint) throws Throwable {
System.out.println("支付方法中,环绕 先来一下........");
Object result = joinPoint.proceed();
System.out.println("支付方法结束了,走你.........");
//改变运行结果。
return result + "add";
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
spring aop 注解例子
共29个文件
xml:9个
java:6个
class:6个
3星 · 超过75%的资源 需积分: 9 56 下载量 201 浏览量
2015-03-04
10:36:16
上传
评论
收藏 18KB ZIP 举报
温馨提示
spring aop 通过注解实现的项目,这只是一个简单的例子。运行环境也简单。
资源推荐
资源详情
资源评论
收起资源包目录
testSpring.zip (29个子文件)
testSpring
WebContent
META-INF
MANIFEST.MF 39B
WEB-INF
web.xml 2KB
spring-servlet.xml 1KB
lib
.settings
org.eclipse.wst.jsdt.ui.superType.name 6B
org.eclipse.wst.common.project.facet.core.xml 345B
org.eclipse.wst.common.component 484B
org.eclipse.wst.jsdt.ui.superType.container 49B
.jsdtscope 503B
org.eclipse.jdt.core.prefs 364B
src
mvc1.xml 1KB
com
tgb
aop
RMBPayService.java 473B
Bank1.java 55B
Bank.java 50B
LogAspect.java 2KB
Test.java 719B
IPayService.java 97B
test.xml 1KB
root-context.xml 673B
.project 1KB
.classpath 916B
build
classes
mvc1.xml 1KB
com
tgb
aop
Test.class 1KB
Bank1.class 103B
RMBPayService.class 964B
Bank.class 261B
IPayService.class 154B
LogAspect.class 3KB
test.xml 1KB
root-context.xml 673B
共 29 条
- 1
资源评论
- echowahaha2018-05-21下载下来编译报错啊~
- DYT6772016-01-27还不错,学习了
钟政123
- 粉丝: 1
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功