当前位置: 首页 > 网络应用技术

基于春季AOP的实现日志功能

时间:2023-03-08 01:13:00 网络应用技术

  我已经很久没有写博客了。我以前遇到了需求。当用户登录时,您需要编写日志。该日志不仅写入日志文件中,而且还需要在数据库中写入,因为可以通过弹簧AOP实现日志函数。iMplement此函数:

  首先,模拟最简单的登录请求:

  因为,我们知道,当我们需要通过数据库保存登录数据时,这是一个非企业码。对于此非商业代码,它很可能会重复使用。目前,我们可以使用AOP使用AOP功能来实现。

  在AOP中,有三个主要要素:切割表面,连接点和通知。

  切割表面:表示您想做的事情。

  连接点:需要剪切哪些方法。

  注意:它表示切割表面的执行时间。切割表面是在目标方法之前执行的,或在目标方法之后执行切割表面。

  通常:当时哪种方法执行相应的切割表面。(您可以看到特定的细节)

  由于它是日志功能,因此我们需要记录一些细节。例如,我们需要在打印日志过程中记录参数,调用方法和其他相关内容。

  测试后,当系统登录时(可以记录登录()方法)时。测试结果如下图所示:

  目前,我们可以实现日志函数记录,但是此日志函数只能支持login()的方法。

  AOP仅配置此方法。当然,根据协议的情况,我们可以区分想要在同一软件包下实现AOP函数的类,或通过命名来区分它。在这种方式中,可以在此中指定这些配置@around以实现AOP函数。

  但是,问题是,这也非常麻烦。毕竟,项目将改变。整个项目团队支持该软件包的协议或指定的命名协议,并且成本将相对较大。如果没有适当的转移可能导致某些类使用AOP功能,并且某些类用于使用AOP函数,更麻烦。

  实际上,为了解决此问题,您可以使用注释(注释非常简单,即接口代表标记),因此使用注释类来进行注释。如果您不想使用AOP增强类,则不需要注释(这就是为什么添加代码后,如果您不想要原始代码,则可以使用AOP,因为它真的很简单,完全解耦),在使用此注释后,这意味着该方法需要通过AOP增强。

  然后将其配置在Logaop中以修改AOP的范围。

  然后,在调用的方法中,使用相应的注释。测试后,它符合期望。

  这样,通过注释+AOP组合实现了登录日志函数。

  注释本身可以携带信息,评论的摘要是携带信息。

  然后,在使用过程中,将其传递。

  最后,在AOP中,打印了相应的参数。

  测试后,它符合期望。

  本文意识到log + aop方法的登录。将来,当AOP被解耦以实现非企业码时,您可以通过注释 + AOP提高灵活性。

  原始:https://juejin.cn/post/709526999218073608