首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

利用AOP实现操作日志

# 利用AOP实现操作日志 AOP能够实现一些前置或者后置任务,作为一个切面,来完成例如日志记录、性能统计、安全控制、事务处理、异常处理等任务。...这篇文章主要是总结自己利用AOP去实现全局操作日志记录功能的步骤。...要完成日志功能的记录和查询首先需要一个数据库表,命名为sysLog 包含id、visitTime、username、ip、url、executionTime、method字段 分别代表主键、访问时间、操作者用户名...String ip; private String url; private Long executionTime; private String method; } 创建AOP...结束时间可以直接用new Date().getTime()减去开始时间,即可获得访问时长了 我们还想要获取Controller中执行注解的url,有一下几个步骤: 当访问的类、访问的方法不为空且当前的类不是AOP

52910
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    我们已经不用AOP操作日志了!

    实现方案对比 基于AOP(切面)传统的实现方案 优点:实现思路简单; 缺点:增加数据库的负担,强依赖前端的传参,不方便拓展,不支持批量操作,不支持多表关联; 基于数据库Binlog 优点:解除了数据新旧变化的耦合...,支持批量操作,方便多表关联拓展,不依赖开发语言; 缺点:数据库表设计需要统一的约定; 方案实现细节 一、基于AOP切面+注解的传统方案 传统的做法就是切面+注解的方式,这种对代码的侵入性不强,通常记录...ip、业务模块、操作账号、操作场景、操作来源等等,一般在注解+拦截器里这些值都拿得到,如下图所示: ?...,并且都已经在功能上进行实现,其中使用aop方案也是大部分中小企业的首选实现方案,但是在一些金融领域以及erp相关系统,对操作日志记录明细要求极高,常见技术方案很难满足,即使能够满足也会带来一些代码强侵入以及性能问题...,所以我们又讨论了基于binlog实现的方案,该方案虽然比对aop来说增强了技术的复杂性,但是对于有一定技术积累的团队来说不算什么难事,并且该方案我们都实现了上线,并且解决了代码层面上的侵入,属于跨语言级别的

    6.8K21

    使用 SpringBoot AOP 记录操作日志、异常日志

    五、在Controller层方法添加@OperLog注解 六、操作日志、异常日志查询功能 ---- 平时我们在做项目时经常需要对一些重要功能操作记录日志,方便以后跟踪是谁在操作此功能;我们在操作某些功能时也有可能会发生异常...我们以前学过Spring 三大特性,IOC(控制反转),DI(依赖注入),AOP(面向切面),那其中AOP的主要功能就是将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑代码中划分出来。...今天我们就来用springBoot Aop 来做日志记录,好了,废话说了一大堆还是上货吧。 一、创建日志记录表、异常日志表,表结构如下: ? ?...dependency> 2 org.springframework.boot 3 spring-boot-starter-aop...创建切面类记录操作日志 1 package com.hyd.zcar.cms.common.utils.aop; 2 3 import java.lang.reflect.Method;

    6.6K71

    如何使用SpringBoot AOP 记录操作日志、异常日志?

    我们以前学过Spring 三大特性,IOC(控制反转),DI(依赖注入),AOP(面向切面),那其中AOP的主要功能就是将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑代码中划分出来。...今天我们就来用springBoot Aop 来做日志记录,好了,废话说了一大堆还是上货吧。 一、创建日志记录表、异常日志表,表结构如下: 操作日志表 ? 异常日志表 ?...依赖 org.springframework.boot spring-boot-starter-aop...package com.hyd.zcar.cms.common.utils.aop; import java.lang.reflect.Method; import java.util.Date;...六、操作日志、异常日志查询功能 ? ? ? ? ? 原文始发于微信公众号(全栈程序员社区):如何使用SpringBoot AOP 记录操作日志、异常日志?

    7.9K30

    基于SpringBoot使用AOP技术实现操作日志管理

    操作日志对于程序员或管理员而言,可以快速定位到系统中相关的操作,而对于操作日志的管理的实现不能对正常业务实现进行影响,否则即不满足单一原则,也会导致后续代码维护困难,因此我们考虑使用AOP切面技术来实现对日志管理的实现...文章大致内容: 1、基本概念 2、基本应用 3、日志管理实战 对这几部分理解了,会对AOP的应用应该很轻松。...Spring AOP允许您向任何建议的对象引入新的接口(和相应的实现)。...由于Spring AOP是通过使用运行时代理实现的,所以这个对象始终是代理对象 AOP proxy(代理) AOP框架为实现切面契约(通知方法执行等)而创建的对象。...-- aop依赖 --> org.springframework.boot spring-boot-starter-aop

    65030

    spring-boot-route(十七)使用aop记录操作日志

    但是在实际开发中,使用文件存储日志用来快速查询问题并不是最方便的,一个优秀系统除了日志文件还需要将操作日志进行持久化,来监控平台的操作记录。今天我们一起来学习一下如何通过apo来记录日志。...为了让记录日志更加灵活,我们将使用自定义的注解来实现重要操作的日志记录功能。 一 日志记录表 日志记录表主要包含几个字段,业务模块,操作类型,接口地址,处理状态,错误信息以及操作时间。...default ""; /** * 功能 */ BusinessType businessType() default BusinessType.OTHER; } 使用aop...private AsyncLogService asyncLogService; // 配置织入点 @Pointcut("@annotation(com.javatrip.aop.annotation.Log...,为了方便我直接使用jdbcTemplate在service中进行存库操作

    94441

    细说Spring——AOP详解(AOP概览)

    一、对AOP的初印象 首先先给出一段比较专业的术语(来自百度): 在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方 式和运行期动态代理实现程序功能的统一维护的一种技术...二、AOP中的相关概念 看过了上面的例子,我想大家脑中对AOP已经有了一个大致的雏形,但是又对上面提到的切面之类的术语有一些模糊的地方,接下来就来讲解一下AOP中的相关概念,了解了AOP中的概念,才能真正的掌握...AOP的精髓。...Advice(增强):Advice 定义了在 Pointcut 里面定义的程序点具体要做的操作,它通过 before、after 和 around 来区别是在每个 joint point 之前、之后还是代替执行的代码...的概念还是很模糊, 对 AOP 中的各种概念理解的还不是很透彻.

    54041

    AOP

    AOP AOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善。...所谓"切面",简单说就是那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块之间的耦合度,并有利于未来的可操作性和可维护性。...AOP的作用在于分离系统中的各种关注点,将核心关注点和横切关注点分离开来。...CGLIB AOP编程其实是很简单的事情,纵观AOP编程,程序员只需要参与三个部分: 1、定义普通业务组件 2、定义切入点,一个切入点可能横切多个业务组件 3、定义增强处理,增强处理就是在AOP框架为普通业务组件织入的处理动作...所以进行AOP编程的关键就是定义切入点和定义增强处理,一旦定义了合适的切入点和增强处理,AOP框架将自动生成AOP代理,即:代理对象的方法=增强处理+被代理对象的方法。

    82520

    AOP详解之三-创建AOP代理后记,创建AOP代理

    AOP详解之三-创建AOP代理后记,创建AOP代理。 上篇文章已经获取到了AOP的信息,接下来就是拿着这些AOP的信息去创建代理了。 首先我们看下创建AOP代理的入口处。...则代表无需处理 if (Boolean.FALSE.equals(this.advisedBeans.get(cacheKey))) { return bean; } // 3.bean的类是aop...的代理对象 /** * 创建AOP对象的真正实例 * @param config the AOP configuration in the form of an * AdvisedSupport...[image-20220324091153589] 我们实现类也就是我们常说的实现AOP的两种方式,使用cglib和jdk动态代理的方式。 我们简要的介绍一下这两种aop的原理。...历时三个月将Spring的IOC和AOP的源码解读就结束了,如果读者想完整的熟悉整个流程,可以看历史文章一步步的揭开Spring的神秘面纱。

    45320

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券