AOP、注解实现日志收集
1.问题描述 需要对日常使用对接口进行出入参数、请求结果、请求耗时、请求关键信息等的记录 2.解决方案 利用注解标示出接口中的关键信息。利用AOP进行方法前后的拦截记录请求入参以及处理结果。利用SPEL解析参数中的关键信息 考虑点:1.各个接口的参数都不一致。自己想要的关键信息可能包含在入参中,也可能不包含在入参中。参数中关键信息的解析 如:void test(String userId):userId就是需要的关键信息 void test(String userName,String userId):userId为关键信息 void test(User user):这里的关键信息包含在user对象中 void test():这里方法没有任何参数,但是可能自己需要的关键信息userId可能存在于Session或者其他地方。 2.当关键信息不再参数中的时候,如何解析:(本文方案是提供Handler接口来辅助进行关键信息的获取) 3.对于敏感信息是否有必要入库保存,一般来说敏感信息是不允许入库的,这个时候如何使得入参中的敏感信息不被保存 3.实现 使用实例: 实例1:@Logger(flag = "WX",des = "wxcs",ignore = {"#param.mobile"}