成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

在Spring 中使用@Aspect 控制自定義注解的操作

瀏覽:84日期:2023-07-26 08:02:11

Spring 中使用@Aspect 控制自定義注解

看這篇介紹@Aspect

1.定義系統(tǒng)日志注解類

@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface SysLog {String value() default '';}2.定義切面處理類

package com.kxs.common.aspect;import com.google.gson.Gson;import com.kxs.common.annotation.SysLog;import com.kxs.common.utils.HttpContextUtils;import com.kxs.common.utils.IPUtils;import com.kxs.modules.sys.entity.SysLogEntity;import com.kxs.modules.sys.entity.SysUserEntity;import com.kxs.modules.sys.service.SysLogService;import org.apache.shiro.SecurityUtils;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.Around;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Pointcut;import org.aspectj.lang.reflect.MethodSignature;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component;import javax.servlet.http.HttpServletRequest;import java.lang.reflect.Method;import java.util.Date;/** * 系統(tǒng)日志,切面處理類 * * @author * @email * @date */@Aspect@Componentpublic class SysLogAspect { @Autowired private SysLogService sysLogService; @Pointcut('@annotation(com.kxs.common.annotation.SysLog)')//指向自定義注解路徑 public void logPointCut() { } /** * 切面記錄系統(tǒng)日志 * @param point * @return * @throws Throwable */ @Around('logPointCut()')// public Object around(ProceedingJoinPoint point) throws Throwable { long beginTime = System.currentTimeMillis(); //執(zhí)行方法 Object result = point.proceed(); //執(zhí)行時(shí)長(毫秒) long time = System.currentTimeMillis() - beginTime; //保存日志 saveSysLog(point, time); return result; }//保存日志 private void saveSysLog(ProceedingJoinPoint joinPoint, long time) { MethodSignature signature = (MethodSignature) joinPoint.getSignature(); Method method = signature.getMethod(); SysLogEntity sysLog = new SysLogEntity(); SysLog syslog = method.getAnnotation(SysLog.class); if(syslog != null){ //注解上的描述 sysLog.setOperation(syslog.value()); } //請求的方法名 String className = joinPoint.getTarget().getClass().getName(); String methodName = signature.getName(); sysLog.setMethod(className + '.' + methodName + '()'); //請求的參數(shù) Object[] args = joinPoint.getArgs(); try{ String params = new Gson().toJson(args[0]); sysLog.setParams(params); }catch (Exception e){ } //獲取request HttpServletRequest request = HttpContextUtils.getHttpServletRequest(); //設(shè)置IP地址 sysLog.setIp(IPUtils.getIpAddr(request)); //用戶名 String username = ((SysUserEntity) SecurityUtils.getSubject().getPrincipal()).getUsername(); sysLog.setUsername(username); sysLog.setTime(time); sysLog.setCreateDate(new Date()); //保存系統(tǒng)日志 sysLogService.save(sysLog); }}

補(bǔ)充:為什么添加了@Aspect 還要加@Component

官方文檔中有寫:

You may register aspect classes as regular beans in your Spring XML configuration, or autodetect them through classpath scanning - just like any other Spring-managed bean. However, note that the @Aspect annotation is not sufficient for autodetection in the classpath: For that purpose, you need to add a separate @Component annotation (or alternatively a custom stereotype annotation that qualifies, as per the rules of Spring’s component scanner).

翻譯:

您可以在Spring XML配置中注冊aspect類,或者通過類路徑掃描自動檢測它們,就像任何其他Spring管理bean一樣。但是,請注意,@aspect注釋對于在類路徑中自動檢測是不夠的:為了達(dá)到這個(gè)目的,您需要添加一個(gè)單獨(dú)的@component注解(或者根據(jù)Spring的組件掃描器的規(guī)則來定義一個(gè)定制的原型注解)。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。如有錯誤或未考慮完全的地方,望不吝賜教。

標(biāo)簽: Spring
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
91精品国产色综合久久不卡蜜臀| 欧美日韩精品综合在线| 8x8x8国产精品| 欧美日韩激情在线| 国产欧美日韩综合一区在线观看| 欧美狂野另类xxxxoooo| 国产精品青草久久| 蓝色福利精品导航| 久久狠狠婷婷| 一区二区三区在线高清| 欧美精品成人| 欧美三级韩国三级日本一级| 亚洲视频在线一区| 国产自产在线视频一区| 中文字幕av一区二区三区免费看| 国产 日韩 欧美大片| 3d动漫精品啪啪一区二区竹菊| 美国毛片一区二区三区| 欧美性三三影院| 美腿丝袜在线亚洲一区| 日本丶国产丶欧美色综合| 日韩成人免费在线| 在线欧美小视频| 精品一区二区影视| 制服丝袜国产精品| 成人一区二区视频| 精品国产第一区二区三区观看体验| 国产河南妇女毛片精品久久久 | 91丨porny丨中文| 欧美激情综合在线| 亚洲第一网站| 亚洲国产wwwccc36天堂| 久久综合久久久| 蜜桃视频一区二区三区| 欧美日韩视频在线第一区| 国内精品视频666| 欧美一区二区在线免费播放| 国产91精品久久久久久久网曝门| 日韩精品自拍偷拍| 99久久婷婷国产综合精品| 久久亚洲影视婷婷| 国产字幕视频一区二区| 亚洲人成网站色在线观看| 国产一区二区三区的电影| 日本亚洲电影天堂| 7878成人国产在线观看| 99re成人在线| 日韩伦理av电影| 亚洲永久视频| 精品一区二区三区免费观看 | 香港成人在线视频| 欧美网站一区二区| 国产一区二区不卡在线| 久久天天做天天爱综合色| 国产精品草草| 亚洲电影一级片| 欧美日韩免费在线视频| 99久久久精品| 亚洲免费av高清| 欧美在线观看禁18| 99re这里只有精品视频首页| 国产精品成人免费| 91黄色在线观看| 成人看片黄a免费看在线| 国产精品麻豆欧美日韩ww| 免费在线亚洲欧美| 久久精品国产亚洲5555| 欧美一区二区三区四区五区| 欧美精品入口| 首页欧美精品中文字幕| 欧美成人艳星乳罩| 日韩图片一区| 激情深爱一区二区| 国产人妖乱国产精品人妖| 香蕉av777xxx色综合一区| 国产精品亚洲综合一区在线观看| 国产精品美女久久福利网站| 一本久久综合亚洲鲁鲁五月天 | 欧美精品一区二区三区蜜桃| 亚洲视频www| 国内欧美视频一区二区| 国产女主播在线一区二区| 亚洲一区二区三区欧美| 国产福利一区二区三区视频在线| 欧美国产精品久久| 在线观看一区二区视频| 欧美一区网站| 日本女优在线视频一区二区 | 天堂av在线一区| 久久综合色播五月| 久久久久国产精品一区三寸 | 91小宝寻花一区二区三区| 亚洲成人一二三| 精品国产一区二区亚洲人成毛片 | 榴莲视频成人在线观看| 97久久超碰国产精品| 五月婷婷综合激情| 国产午夜精品福利| 欧美日韩一级片网站| 黄色综合网站| 国产乱子轮精品视频| 亚洲美女电影在线| 日韩欧美电影一区| 麻豆av福利av久久av| 欧美一站二站| 国产久卡久卡久卡久卡视频精品| 亚洲小说欧美激情另类| 久久久久久久久一| 欧美日韩精品综合在线| 亚洲精品一区二| 顶级嫩模精品视频在线看| 午夜a成v人精品| 国产精品电影院| 91精品国产综合久久婷婷香蕉| 国产精品视频免费一区| 91视频一区二区三区| 九九九久久久精品| 一区二区三区在线影院| 欧美va天堂va视频va在线| 久久综合九色| 99视频日韩| 午夜视频久久久| 国产精品一区二区果冻传媒| 亚洲h动漫在线| 中文字幕在线观看不卡| 精品美女在线观看| 欧美视频日韩视频在线观看| 国产精品美女久久久| 欧美日本精品| 成人黄色av电影| 国产乱国产乱300精品| 日韩精品欧美精品| 亚洲天天做日日做天天谢日日欢| 日韩欧美一级片| 欧美日韩中文字幕一区二区| 亚洲欧美激情诱惑| 在线日韩欧美| 黄色欧美日韩| 欧美成人午夜| 北条麻妃一区二区三区| 国产最新精品免费| 美女一区二区在线观看| 亚洲午夜电影在线观看| 国产精品电影一区二区三区| 国产欧美日韩激情| 日韩女优制服丝袜电影| 欧美精品一二三区| 欧美视频三区在线播放| 久久久久成人精品免费播放动漫| 国产欧美日韩一区二区三区在线| 欧美少妇一区| 你懂的亚洲视频| eeuss鲁片一区二区三区| 国产成人综合网| 国产剧情在线观看一区二区| 国产中文一区二区三区| 韩国精品免费视频| 久久国产欧美日韩精品| 日韩av不卡一区二区| 天天综合日日夜夜精品| 亚洲成精国产精品女| 亚洲综合视频网| 亚洲精品视频观看| 亚洲精品你懂的| 亚洲美女视频在线观看| 亚洲欧美日韩国产综合| 综合在线观看色| 亚洲乱码国产乱码精品精小说| 中文字幕在线一区免费| 中文字幕成人av| 国产精品视频在线看| 国产精品女主播av| 中文字幕一区二区三区蜜月| 国产精品成人午夜| 亚洲精品大片www| 亚洲一区在线视频| 亚洲成人一区在线| 日韩av在线发布| 美女视频一区在线观看| 免费人成黄页网站在线一区二区 | 日韩av在线免费观看不卡| 爽爽淫人综合网网站| 日韩中文字幕区一区有砖一区 | 午夜一级在线看亚洲| 久久精品系列| 久久最新视频| 91国偷自产一区二区三区观看| 欧美图区在线视频| 日韩欧美一区二区久久婷婷| 久久久久久久久久久电影| 国产精品网站导航| 亚洲乱码国产乱码精品精可以看| 亚洲最大色网站| 奇米影视一区二区三区小说| 精品午夜久久福利影院| 粉嫩嫩av羞羞动漫久久久| 亚洲欧美综合| 亚洲免费大片| 一本久道久久综合中文字幕| 欧美人与性动xxxx|