安庆大理运城常德铜陵江西
投稿投诉
江西南阳
嘉兴昆明
铜陵滨州
广东西昌
常德梅州
兰州阳江
运城金华
广西萍乡
大理重庆
诸暨泉州
安庆南充
武汉辽宁

SpringBoot中使用SpringAop实现日志记录功能

12月20日 相思宫投稿
  一、创建日志注解
  1、日志类型枚举类importlombok。G日志类型枚举类GetterpublicenumLogType{登录login(LoginLog);实现类名称privatefinalStringimplClassNLogType(StringimplClassName){this。implClassNameimplClassN}}
  2、自定义日志注解importjava。lang。annotation。;importcom。baige。enums。LogT自定义日志注解注解说明:Documented:文档注解Retention(RetentionPolicy。RUNTIME):生命周期注解,注解不仅被保存到class文件中,jvm加载class文件之后,仍然存在Target({ElementType。PARAMETER,ElementType。METHOD}):Target说明了Annotation所修饰的对象范围,ElementType。TYPE:接口、类、枚举、注解,ElementType。METHOD:方法DocumentedRetention(RetentionPolicy。RUNTIME)Target({ElementType。PARAMETER,ElementType。METHOD})publicinterfaceLog{登录类型LogTypelogType();}
  二、利用AOP实现日志切面统一处理
  1、日志实现类创建工厂importcom。baige。enums。LogTimportcom。baige。util。SpringContextHimportorg。springframework。context。ApplicationC日志实现类创建工厂publicclassLogFactory{publicstaticApplicationCpublicstaticIUserLoggetInstance(LogTypelogType){return(IUserLog)SpringContextHolder。getBean(logType。getImplClassName());}}
  2、切面类importlombok。extern。slf4j。Slf4j;importcom。baige。aop。log。IUserLimportcom。baige。aop。annotation。Limportcom。baige。aop。log。LogFimportorg。aspectj。lang。annotation。;importorg。aspectj。lang。ProceedingJoinPimportorg。aspectj。lang。reflect。MethodSimportorg。springframework。stereotype。CSlf4jAspectComponentpublicclassLogAspect{定义切入点,切入点为com。baige。controller。AopController中的所有函数通过Pointcut注解声明频繁使用的切点表达式Pointcut(execution(publiccom。baige。controller。UserController。(。。))))publicvoidpointcut(){}Around(pointcut())publicvoiddoAround(ProceedingJoinPointpjp){try{MethodSignaturemethodSignature(MethodSignature)pjp。getSignature();LoglogmethodSignature。getMethod()。getAnnotation(Log。class);IUserLoguserLogLogFactory。getInstance(log。logType());userLog。addLog(pjp,log);}catch(Throwablethrowable){log。info(日志记录异常,不影响正常业务,throwable);}}}
  三、创建日志实现类
  1、添加日志接口importcom。baige。aop。annotation。Limportorg。aspectj。lang。ProceedingJoinPimportjava。net。UnknownHostEpublicinterfaceIUserLog{添加日志intaddLog(ProceedingJoinPointpjp,Loglog)throwsUnknownHostE}
  2、添加日志接口实现类importjava。util。Dimportjava。net。InetAimportjava。net。UnknownHostEimportlombok。AllArgsCimportorg。aspectj。lang。ProceedingJoinPimportorg。springframework。stereotype。Cimportcom。baige。domain。Uimportcom。baige。domain。UserLimportcom。baige。aop。log。IUserLimportcom。baige。mapper。UserMimportcom。baige。aop。annotation。Limportcom。baige。mapper。UserLogMAllArgsConstructorComponent(LoginLog)publicclassLoginLogimplementsIUserLog{privatefinalUserMapperuserMprivatefinalUserLogMapperuserLogMOverridepublicintaddLog(ProceedingJoinPointpjp,Loglog)throwsUnknownHostException{UserLoguserLognewUserLog();Object〔〕paramspjp。getArgs();if(params。length0){Userparam(User)params〔0〕;UseruseruserMapper。getOne(param。getLoginName(),param。getLoginPassword());if(user!null){userLog。setUserId(user。getId());userLog。setContent(获取用户信息成功);}else{userLog。setContent(未获取到用户信息);}}userLog。setIpAddress(InetAddress。getLocalHost()。getHostAddress());userLog。setCreateTime(newDate());returnuserLogMapper。insert(userLog);}}
  四、controllerpackagecom。baige。importlombok。AllArgsCimportorg。springframework。web。bind。annotation。;importcom。baige。domain。Uimportcom。baige。enums。LogTimportcom。baige。aop。annotation。Limportcom。baige。service。UserSRestControllerAllArgsConstructorRequestMapping(user)publicclassUserController{privatefinalUserServiceuserSPostMapping(login)Log(logTypeLogType。login)publicStringlogin(RequestBodyUserparams){UseruseruserService。login(params。getLoginName(),params。getLoginPassword());returnuser!null?登录成功:登录失败;}}路漫漫其修远兮,吾将上下而求索
  译文:在追寻真理方面,前方的道路还很漫长,但我将百折不挠,不遗余力地去追求和探索。
  如果您有什么好的想法与方法,欢迎在评论区留言,我们一起讨论
投诉 评论 转载

宁德时代华友钴业行业巨头重磅不断!新能源要起风?(原标题:沸腾!8700亿巨头突放猛招,行业再临大变局?千亿钴爷也出手,重磅事件更有新进展,新能源要起风?)新能源行业最近两天重磅不断!首先,在5月21日召开的宁德……欧界丨阿里腾讯不再享受税收优惠,每年上缴税款增多网友纷纷赞同欧界报道:伴随互联网技术的发展,一批互联网巨头企业从中享受了巨大的政策优惠和时代红利。阿里、腾讯等大型互联网公司在创业初期,国家为了扶持线管企业的发展,制定了一系列的税收……Meme库克在iPadmini里写的字太没创意,网友出手改造上周,苹果发布了几款新产品,其中一个是意料之外的iPadmini。虽然看起来它依然是个iPad,但看在尺寸的份上,终究是个新产品,所以它还是受到了高规格的推广。发布会当晚,库克……ARM即将吞噬一切?移动互联网流量红利枯竭,是近几年经常被讨论的话题。其大意是如今很难有一款产品能轻松利用移动网络的特性,低成本实现用户指数级增长。这个观点可能已经被业务陷入困境的互联网公司……硬件全面升级,售价还有小惊喜!新款iMaciMacPro发布继3月18日,苹果直接在官网发布全新iPadAirmini之后,其又在昨晚带来了全新的iMac。根据官网信息,苹果此次一共更新了5款iMac,新iMac在外观设计上基本没……自动驾驶出租车来了,全国首个商业运营试点落地,百度Apoll每经记者:可杨每经编辑:文多11月25日,北京市智能网联汽车政策先行区对外发布《北京市智能网联汽车政策先行区自动驾驶出行服务商业化试点管理实施细则(试行)》(以下简称实施……小米12小幅度降价,realmeGT2Pro好评率最高?不知道大家在选购手机的时候会不会先看评论,根据好评率来选择智能手机,一款智能手机的评论可以给我们一些参考来了解这款智能手机的使用体验等等。目前智能手机竞争激烈,特别是安卓……SpringBoot中使用SpringAop实现日志记录功能一、创建日志注解1、日志类型枚举类importlombok。G日志类型枚举类GetterpublicenumLogType{登录login(LoginLog)……太棒了,iPhone13ProMax!又一次确认库克没骗人在iPhone13ProMax发布之前,库克曾表示iPhone13系列将会是最好的iPhone,毕竟在iPhone13系列发布之前,信号不稳定、电池续航时间短等诸多问题都在困扰……CowenampampampCo。维持优步(UBER。US)CowenCo。:维持优步(UBER。US)优于大市评级,目标价由82。00美元调整至76。00美元。优步(UBER。US)公司简介:UberTechnologies,I……买小米平板5还是ipad?看完你就知道了目前小米平板5和ipad2020是市场上比较热门的两款平板,不少用户都不知道应该怎么选,今天我们就从使用场景和配置两方面对比,看看各位比较适用哪一款。但是我个人是不推荐大家在平……贝壳的焦虑报复性消费还没来,报复性买房反而在各地掀起了燎原之势:从3月底以来,从深圳总价4200万套起的公寓项目7秒售罄,甚至个别楼盘开始重启多年以前的喝茶费;到苏州三个楼盘同时秒……
柳传志的联想和任正非的华为,分别为这个社会带来了什么?远程控制电脑玩游戏可以实现吗?开通送货上门,重新定义菜鸟驿站企业开源指南开源项目管理工具买不起纯电动车?比亚迪让大家都能买得起,e系列来了智造如何做到2。6天生产一架波音787特斯拉召回部分进口及国产Model3高性能版电动汽车中国第一大高端空调品牌超过格力三菱大金,拿下38。5市场份额vivoX70ProMagic3ProMIX4哪款值得购买?除了低价魅蓝,还卖棒球帽魔术贴和开关面板,魅族艰难转型绝对是个例,OPPOFindN转轴处漏液对待数字藏品,不妨谨慎而开放半夜肚子饿,最好不要吃东西科普下甲烷的化学式及其性质美联邦航空局要求对部分波音737NG飞机进行结构裂缝检查夏天哺乳期能喝什么茶妈妈们可适当饮这五款茶薛姓男孩名字大全薛姓男孩起名2020鼠宝宝黄金价格为什么下跌?(黄金价格持续下跌!)贝塔西是怎么死的揭秘贝塔西和墨索里尼之间的故事中国境内有超级火山吗醉别江楼橘柚香,江风引雨入舟凉。意思翻译、赏析同桌的你双十一淘宝小卖家应该怎么做促销阿里云盘绿色版解压即用,无需安装

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找七猫云易事利