简体中文 繁體中文 English Deutsch 한국 사람 بالعربية TÜRKÇE português คนไทย Français Japanese

站内搜索

搜索

活动公告

通知:为庆祝网站一周年,将在5.1日与5.2日开放注册,具体信息请见后续详细公告
04-22 00:04
通知:本站资源由网友上传分享,如有违规等问题请到版务模块进行投诉,资源失效请在帖子内回复要求补档,会尽快处理!
10-23 09:31

Aop实现接口日志打印

SunJu_FaceMall

938

主题

835

科技点

1325

积分

白金月票

积分
1325

未来的小说家柴到了立华奏无人之境【一阶】小樱(小丑装)

发表于 2025-3-21 02:01:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x

Aop实现接口日志打印

​ 在项目中有时会用到很多AOP实现的自定义注解,这里做一个入门型的案例;

首先,我们需要在项目中引入以下依赖:

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>
<dependency>
     <groupId>com.alibaba</groupId>
     <artifactId>fastjson</artifactId>
     <version>1.2.78</version>
</dependency>
<!-- AOP -->
<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-aop</artifactId>
</dependency>

其次,完成我们的自定义注解

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@Documented
public @interface MethodLog {
}

自定义注解之后,要实现切面类,对使用该注解的接口进行操作。

@Aspect
@Component
@Slf4j
public class MethodLogAspect {

    /**
     * 自定义切点
     */
  @Pointcut("@annotation(com.alex.Annotation.MethodLog)")
    public void methodLog(){
    }

    /**
     * 前置通知
     * @param joinPoint 切点
     */
    @Before("methodLog()")
    public void doBefore(JoinPoint joinPoint){
        // 记录方法的入参
        log.info("调用的方法为:{}",joinPoint.getSignature());
        log.info("方法的入参为:{}", JSON.toJSONString(joinPoint.getArgs()));

    }
    /**
     * 后置通知
     * @param o 方法返回值
     */
    @AfterReturning(returning = "o",pointcut = "methodLog()")
    public void doAfter(Object o){
        // 记录方法的出参
        log.info("方法的出参为:{}",JSON.toJSONString(o));
    }
}

最后在controller层的接口上加上MethodLog注解,就可以正常打印出日志。

接口:

image20230717145315988.png

控制台打印:

image20230717145305780.png

如此,就实现了一个简单的aop入门案例

可爱小樱
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

手机版|联系我们|小黑屋|TG频道|RSS |网站地图

Powered by Pixtech

© 2025-2026 Pixtech Team.

>