我已经很久没有写博客了。我以前遇到了需求。当用户登录时,您需要编写日志。该日志不仅写入日志文件中,而且还需要在数据库中写入,因为可以通过弹簧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