|世界热门_洞察网
【资料图】
专题使用汇总:
8. Java-AOP
1.AOP:面向切面编程,就是面向特定方法编程。在不改变原有方法的基础上新增功能(功能增强,功能改变)2.SpringAOP3.SpringAOP 开发步骤;
一.使用场景:1.记录操作日志2.权限控制3.事务管理4.记录方法执行时间
二.优势1.代码无浸入2.减少重复代码3.提高开发效率4.维护方便
三.操作:执行流程,动态代理技术,生成动态代理对象(实现功能增强)3.1 添加依赖在pom.xml
org.springframework.boot spring-boot-starter-aop
3.2 编写AOP程序:针对特定方法业务需要进行编程
@Slf4j@Component//@Aspect //AOP类public class TimeAspect { //@Around("execution(* com.itheima.service.impl.DeptServiceImpl.*(..))") //切入点表达式,对所有类,接口记录执行时间 @Around("com.itheima.aop.MyAspect1.pt()") public Object recordTime(ProceedingJoinPoint joinPoint) throws Throwable { //1. 记录开始时间 long begin = System.currentTimeMillis(); //2. 调用原始方法运行 Object result = joinPoint.proceed(); //3. 记录结束时间, 计算方法执行耗时 long end = System.currentTimeMillis(); log.info(joinPoint.getSignature()+"方法执行耗时: {}ms", end-begin); return result; }}
四.核心概念1.连接点: JoinPoint 可以被AOP控制的方法2.通知:Advice 指那些重复的逻辑,即共性的功能3.切入点:PointCut 匹配连接点的条件
@Pointcut("execution(* com.itheima.service.impl.DeptServiceImpl.*(..))") public void pt(){} @Pointcut("execution(* com.itheima.service.DeptService.list()) || " + "execution(* com.itheima.service.DeptService.delete(java.lang.Integer))") private void pt(){}
[责任编辑:linlin]
标签: