AOP基础-快速入门

这篇具有很好参考价值的文章主要介绍了AOP基础-快速入门。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

AOP概述

  • AOP:Aspect Oriented Programming(面向切面编程),其实就是面向特定方法编程
  • 场景:
    • 案例部分功能运行比较慢,定位执行耗时较长的业务方法,此时需要统计每一个业务方法的执行耗时。
  • 实现:
    • 动态代理是面向切面编程最主流的实现。而SpringAOP是Spring框架的高级技术,目的在管理Bean对象的过程中,主要通过底层的动态代理机制,对特定的方法进行编程。

Spring AOP快速入门

  • 案例需求

    • 统计各个业务层方法执行耗时
  • 步骤

    • 导入依赖:在pom.xml中导入AOP的依赖
      • <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>
        
    • 编写AOP程序:针对特定方法根据业务需要进行编写
      • package com.example.tlias.AOP;
        
        import lombok.extern.slf4j.Slf4j;
        import org.aspectj.lang.ProceedingJoinPoint;
        import org.aspectj.lang.annotation.Around;
        import org.aspectj.lang.annotation.Aspect;
        import org.springframework.stereotype.Component;
        
        @Slf4j
        @Component // todo 将当前对象交给IOC容器管理,成为bean对象
        @Aspect // todo 表示当前类为AOP类
        public class TimeAspect {
            @Around("execution(* com.example.tlias.service.*.*(..))")  // todo 切入点表达式定义了哪些方法会被切入并执行切面逻辑
            public Object recordTime(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
                // 1.记录开始时间
                long begin = System.currentTimeMillis();
                // 2.调用原始方法运行
                Object result = proceedingJoinPoint.proceed();
                // 3.记录结束时间,计算方法执行耗时
                long end = System.currentTimeMillis();
                log.info("{}方法执行耗时:{}ms", proceedingJoinPoint.getSignature(), end - begin);
                return result;
            }
        }
        

AOP使用场景

  • 记录操作日志
  • 权限控制
  • 事务管理

优势

  • 代码无入侵:不同在特定方法中增加代码
  • 减少重复代码:同一个AOP类可以适用于多种同类方法
  • 提高开发效率
  • 维护方便:构建的AOP逻辑需要改变,只需要改变AOP类中的代码逻辑即可

文章来源地址https://www.toymoban.com/news/detail-687686.html

到了这里,关于AOP基础-快速入门的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring MVC官方文档学习笔记(一)之Web入门

    注: 该章节主要为原创内容,为后续的Spring MVC内容做一个先行铺垫 1.Servlet的构建使用 (1) 选择Maven - webapp来构建一个web应用 (2) 构建好后,打开pom.xml文件,一要注意打包方式为war包,二导入servlet依赖,如下 (3) 替换webapp/WEB-INF/web.xml文件为如下内容,采用Servlet 3.1版本 (4) 在

    2024年02月03日
    浏览(32)
  • 零基础如何学习Web 安全,如何让普通人快速入门网络安全?、

    网络安全现在是朝阳行业,缺口是很大。不过网络安全行业就是需要技术很多的人达不到企业要求才导致人才缺口大 初级的现在有很多的运维人员转网络安全,初级也会慢慢的卷起来,但是岗位多不用怕,以后各大厂也都会要网络安全人员,后续法律也会改革,网络安全只会

    2024年04月22日
    浏览(47)
  • 零基础如何学习 Web 安全,如何让普通人快速入门网络安全?

    前言 网络安全现在是朝阳行业,缺口是很大。不过网络安全行业就是需要技术很多的人达不到企业要求才导致人才缺口大 【一一帮助安全学习(网络安全面试题+学习路线+视频教程+工具)一一】 初级的现在有很多的运维人员转网络安全,初级也会慢慢的卷起来,但是岗位多

    2024年02月12日
    浏览(53)
  • Spring AOP官方文档学习笔记(二)之基于注解的Spring AOP

    1.@Aspect注解 (1) @Aspect注解用于声明一个切面类,我们可在该类中来自定义切面,早在Spring之前,AspectJ框架中就已经存在了这么一个注解,而Spring为了提供统一的注解风格,因此采用了和AspectJ框架相同的注解方式,这便是@Aspect注解的由来,换句话说,在Spring想做AOP框架之前,

    2023年04月17日
    浏览(32)
  • Spring入门&控制反转(或依赖注入)&AOP的关键概念& 多配置文件&与web集成

    目录 1. 什么是spring,它能够做什么? 2. 什么是控制反转(或依赖注入) 3. AOP的关键概念 4. 示例 4.1 创建工程 4.2 pom文件 4.3 spring配置文件 4.4 示例代码 4.4.1 示例1 4.4.2 示例2 (abstract,parent示例) 4.4.3 使用有参数构造方法创建javaBean 4.4.4 init-method:指定bean的初始化方法 4.4.5 复杂属

    2024年02月09日
    浏览(33)
  • Spring AOP官方文档学习笔记(三)之基于xml的Spring AOP

    1.声明schema,导入命名空间 (1)如果我们想要使用基于xml的spring aop,那么,第一步,我们需要在xml配置文件中声明spring aop schema,导入命名空间,如下这是一个标准的模板 (2)在xml配置文件中,所有的切面以及通知等都必须放置于aop:config标签内 2.声明一个切面 3.声明一个切

    2024年02月02日
    浏览(31)
  • Spring学习笔记(四)AOP介绍

            AOP的全称是Aspect Oriented Programming,即 面向切面编程 。和OOP(面向对象编程)不同,AOP主张将程序中相同的业务逻辑进行 横向隔离 ,并将重复的业务逻辑抽取到一个独立的模块中,以达到 提高程序可重用性和开发效率的目的 。                在传统的业务处理代

    2024年02月21日
    浏览(29)
  • Spring AOP官方文档学习笔记(四)之Spring AOP的其他知识点

    1.选择哪种AOP (1) 使用Spring AOP比使用完整版的AspectJ更方便简单,因为不需要在开发和构建过程中引入AspectJ编译器以及织入器,如果我们只希望通知能够在Spring Bean上执行,那么选用Spring AOP就可以了,如果我们希望通知能够在不由Spring所管理的对象上执行,那么就需要使用AspectJ,如果

    2024年02月03日
    浏览(30)
  • Spring5学习笔记—AOP编程

    ✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: Spring专栏 ✨特色专栏: MySQL学习 🥭本文内容:Spring5学习笔记—AOP编程 🖥️个人小站 :个人博客,欢迎大家访问 📚个人知识库: 知识库,欢

    2024年02月12日
    浏览(26)
  • web渗透安全学习笔记:1、入门基础知识/ XXS漏洞

        自编写python渗透工具编写学习笔记专栏以来,笔者便发现了一个较为严重的问题:我们大多数文章都是学习如何用python编写扫描与利用漏洞的渗透工具,却没有真正解析漏洞的形成原因,长此以往我们的学习就只会浮于表面,广而不深。为了改变这一现状,笔者决定以深

    2024年02月03日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包