AOP实现日志打印

       AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。今天想要介绍的是如何使用AOP实现日志打印的功能。

       首先创建一个 LogInterface日志接口,代码如下:

       AOP实现日志打印

       以上日志信息记录函数为自定义函数,分别为一般级别、警告级别、错误级别和致命级别的日志信息记录函数。也可以根据自己的项目需求进行自定义。

       接下来实现一个LogImp实现接口内部的自定义日志信息记录函数。代码如下:

       AOP实现日志打印

      接下来实现一个AOPMethod接口类,方便在切入前和切入后进行操作,切入前的函数执行结束,就可以执行切入后的业务逻辑,再进行一些业务逻辑执行结束后的相关操作。

       AOP实现日志打印

       那么接下来要实现的是一个AOPHandle类,这个类继承InvocationHandler,然后需要重写invoke方法,用jdk的动态代理来实现方法的调用。代码如下:

        AOP实现日志打印

        最后就是需要知道怎么获取log的具体实例了,我们写一个LogFactory类,在这个类中实现。代码如下:

        AOP实现日志打印

        最后写个AOPTest测试类查看测试结果:

        AOP实现日志打印

        AOP实现日志打印

         最后附上github项目地址:https://github.com/HeShujieBABA/aop