最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

8. Java-AOP 面向切面编程

来源:博客园


【资料图】

专题使用汇总:

  1. Java-IDEA
  2. Java-Maven,依赖管理,私服 https://www.cnblogs.com/chenshaojun2008/p/17493632.html
  3. Java-IOC&DI
  4. Java-Mybatis连接池,动态sql https://www.cnblogs.com/chenshaojun2008/p/17496913.html
  5. Java-文件上传(本地和OSS)
  6. Java-登录校验JWT,过滤器,拦截器使用总结 https://www.cnblogs.com/chenshaojun2008/p/17500546.html
  7. Java-事务管理 https://www.cnblogs.com/chenshaojun2008/p/17500949.html
  8. Java-AOP https://www.cnblogs.com/chenshaojun2008/p/17501255.html
  9. IDEA 有用的插件使用汇总 记录 https://www.cnblogs.com/chenshaojun2008/p/17500940.html

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(){}
  1. 切面:Aspect:描述通知和切入点的关系5.目标对象:Target 通知所应用的对象

关键词: