java spring aop测试演示
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java spring aop测试演示相关的知识,希望对你有一定的参考价值。
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
/**
* Descritpion:
* aop测试:
* 1.添加Component注解,注入spring容器中
* 2.添加Aspect注解,声明是切面
*
* @author Jeason
* @date 2018/9/14
*/
/**
*Order:
*切面优先级,数值越小优先级越高
*/
@Order(1)
@Component
@Aspect
public class AopTest {
private Logger logger = LoggerFactory.getLogger(getClass());
@Pointcut("execution(* com.ssm.service.TestService.add(..))")
public void TestAspect() {
}
@Pointcut("execution(* com.ssm.service.TestService.aopTest(..))")
public void test() {
}
@Before("TestAspect()")
public void before() {
logger.warn("这是before");
}
@After("TestAspect()")
public void after() {
logger.warn("这是after");
}
@AfterReturning("TestAspect()")
public void afterRunning() {
logger.warn("这是AfterReturning");
}
@AfterThrowing("TestAspect()")
public void afterThrowing() {
logger.warn("这是afterThrowing,出现了异常");
}
@Around("test()")
public void testAround(ProceedingJoinPoint pjp) {
try {
pjp.proceed();
} catch (Exception e) {
logger.error("方法出现了异常");
} catch (Throwable throwable) {
logger.warn(throwable.getMessage());
} finally {
logger.warn("方法执行完成");
}
}
@Around("TestAspect()")
public Object around(ProceedingJoinPoint pjp) throws Throwable {
long start = System.currentTimeMillis();
/**
*执行目标方法:
*可以处理返回结果,处理后的结果返回给请求端。
* 如下:
* 本来执行的结果是 “成功”
* 修改后返回的结果是 “经过AOP重写新增成功”
*/
Object obj = pjp.proceed();
long duration = System.currentTimeMillis() - start;
System.out.println(String.format("time for booking flight is %d seconds", duration));
return "经过AOP重写新增成功";
}
}
以上是关于java spring aop测试演示的主要内容,如果未能解决你的问题,请参考以下文章
Java开发Spring之AOP详解(xml--注解->方法增强事务管理(声明事务的实现))
2018.12.24 Spring中的aop演示
04-spring中的aop演示
Java开发工程师(Web方向) - 04.Spring框架 - 第3章.AOP技术
❤️Spring从入门到大神--AOP从入门到精通
初步学习Spring Aop使用之注解方式