博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaLib | 使用AOP帮你记录日志
阅读量:6225 次
发布时间:2019-06-21

本文共 2290 字,大约阅读时间需要 7 分钟。

hot3.png

这一次,我们干脆点,直接进入正题。

第一步

使用这个模块,你必要加入的包依赖:

AOP 记录日志模块需要的包依赖(红色边框)

第二步

你需要告诉我,你的切入点(继承 LBaseWebLogAspect,并实现 pointCut() 方法,配置你的切入点)

@Aspect@Componentclass WebLogAspect extends LBaseWebLogAspect {    @Pointcut("execution(* com.fengwenyi.javalibexampleaoplog..*.*(..))")    @Override    protected void pointCut() { }}

第三步

写一个接口进行测试,我们还是使用上一次的切口吧(完整代码)

package com.fengwenyi.javalibexampleaoplog;import com.fengwenyi.javalib.aop.LBaseWebLogAspect;import com.fengwenyi.javalib.result.DefaultReturnCode;import com.fengwenyi.javalib.result.Result;import com.fengwenyi.javalib.result.ResultResponseUtil;import lombok.Data;import lombok.experimental.Accessors;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Pointcut;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.stereotype.Component;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;@SpringBootApplication@RestControllerpublic class JavalibExampleAoplogApplication {    public static void main(String[] args) {        SpringApplication.run(JavalibExampleAoplogApplication.class, args);    }    /**     * 获取所有用户数据     * @return (json)     */    @GetMapping("/getUsers")    public Result getUsers() {        User user1 = new User().setName("冯文议").setAge(26).setGender("男");        User user2 = new User().setName("张三").setAge(25).setGender("女");        User user3 = new User().setName("李四").setAge(23).setGender("保密");        User user4 = new User().setName("王五").setAge(20).setGender("未知");        User [] users = {user1, user2, user3, user4};        return ResultResponseUtil.ok().status(DefaultReturnCode.SUCCESS).data(users);    }}@Aspect@Componentclass WebLogAspect extends LBaseWebLogAspect {    @Pointcut("execution(* com.fengwenyi.javalibexampleaoplog..*.*(..))")    @Override    protected void pointCut() { }}@Data@Accessors(chain = true)class User {    // 姓名    private String name;    // 年龄    private Integer age;    // 性别    private String gender;}

第四步

AOP 记录访问日志

我们放大点,看得仔细

放大点

日志主要记录以下信息:

  • 请求客户端IP

  • 请求URL

  • 请求的方式(GET/POST/...)

  • 请求的类及相应的方法

  • 请求的参数(json格式字符串)

  • 返回的数据对象

  • 此次请求花费的时间(单位:ns;ns 纳秒 1s=1000ms 1ms=1000us 1us=1000ns)

资料

[1]

[2]

[3]

转载于:https://my.oschina.net/fengwenyi/blog/1941851

你可能感兴趣的文章
Virtualbox安装增强工具失败
查看>>
HTTP协议状态码详解(HTTP Status Code)
查看>>
Storm集群安装部署步骤【详细版】
查看>>
【转】java将excel文件转换成txt格式文件
查看>>
(筆記) 如何停用Windows XP的USB autorun? (OS) (Windows)
查看>>
Programming in the Mid-Future(转)
查看>>
Spring任务调度实战之Quartz Cron Trigger
查看>>
java 监控 收集资料3(收集中)
查看>>
从excel看数据分析1
查看>>
将String保存成文件
查看>>
12款JavaScript表单插件
查看>>
HDOJ 1090
查看>>
ajax交互的两种方式:html与xml
查看>>
Oracle10g安装了11g的ODAC后,PL/SQL连接提示TNS:无法解析指定的连接标识符
查看>>
Android通讯录查询篇--ContactsContract.Data
查看>>
去掉TabActivity底部默认白线
查看>>
ISS配置的错误
查看>>
jq倾斜的动画导航菜单
查看>>
[AaronYang原创] 大话ASP.NET MVC3+ (C#与DOM与JS页面上的很炫的技巧)
查看>>
有感20131009
查看>>