通过aop切面记录controller请求与返回结果日志

Java实现AOP切面记录日志实例 注:一个可以直接拿去用的aop切面保存系统操作日志的实例,应用框架为SpringMVC。 需求描述: 管理员要在系统中能看到每个账户的操作记录、时间、账户名称、ip。 实现步骤: 1、实现自定义注解MethodLog 2、建日志实体Bean 3、实现监听注解,调用切面实现类 4、配置启动对@AspectJ注解的支持及监听类 5、业务Controller引用 具体实现: 1、建一个接口类,内容如下 ... 阅读详情

1,加入aop包

<!-- aop 切面 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-aop</artifactId>
</dependency>

2,切面代码

/**
 * 定义切面,记录controller请求参数与返回结果
 *
 * @author: hewenmin
 * @date: 2021/4/1 11:39
 * @param: null
 * @return:
 */
@Aspect
@Component
public class RequestRecordAspect {

    private final Logger logger = LoggerFactory.getLogger(this.getClass());

    @Pointcut(value = "execution(public * com.jlkj.controller..*.*(..))")
    public void webLog() {
    }

    /**
     * 请求进入之前,日志记录
     * @author: hewenmin
     * @date: 2021/4/1 11:41
     * @param: null
     * @return:
     */
    @Before(value = "webLog()")
    public void doBefore(JoinPoint joinPoint) {
        // 接收到请求,打印请求内容
        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        HttpServletRequest request = attributes.getRequest();
        // 打印请求内容
        logger.info("URL : " + request.getRequestURL().toString());
        logger.info("HTTP_METHOD : " + request.getMethod());
        logger.info("IP : " + request.getRemoteAddr());
        logger.info("CLASS_METHOD : " + joinPoint.getSignature().getDeclaringTypeName() + "." + joinPoint.getSignature().getName());
        logger.info("ARGS : " + Arrays.toString(joinPoint.getArgs()));
    }

    /**
     * 请求处理完成,返回日志记录
     *
     * @author: hewenmin
     * @date: 2021/4/1 11:41
     * @param: ret
     * @return: void
     */
    @AfterReturning(returning = "ret", pointcut = "webLog()")
    public void doAfterReturning(Object ret) {
        logger.info("请求处理完成,返回数据:{}", ret.toString());
    }
}
Springboot使用AOP记录请求日志和返回数据 Spring给我们的提供了强大的AOP功能;什么是AOP?AOP为Aspect Oriented Programming的缩写,意为:面向切面编程;我们可以使用它来做一些统一动作,这里我将使用它来记录我们的Controller层接口的请求日志和返回数据。 代码清单: pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot. 阅读详情

相关推荐

Springboot AOP 拦截 直接返回结果数据

Springboot AOP 拦截 直接返回结果数据

默默不代表沉默 4477

Java AOP 通过注解实现切面及通过注解改变返回值

面向切面编程、通过注解实现AOP

weixin_43958683的博客 5671

避开地图定位偏差!手把手教你用Python实现火星坐标与WGS84精准转换

本文深入解析了国内地图服务中火星坐标(GCJ-02)与国际标准WGS84坐标系之间的偏差问题,并提供了基于Python的精准转换解决方案。文章详细阐述了坐标转换的核心原理,手把手教你构建可复用的转换工具包,并演示如何将其集成到实际应用(如Flask API)中,帮助开发者和数据分析师有效解决地图定位不准、多源数据无法对齐的痛点,提升地理信息处理能力。

weixin_29250403的博客 123

spring-aop的切入表达式和JoinPoint的使用以及怎么返回通知获取结果和在异常通知中获取异常还有环绕通知

本篇讲解了spring-aop的切入表达式和JoinPoint的使用以及怎么返回通知获取结果和在异常通知中获取异常还有环绕通知😍Spring-AOP系类文章第一篇->Spring-AOP的基本介绍以及通过先动态代理方式实现第二篇->Spring-动态代理深入了解第三篇->再次分析-提出 Spring AOP-真正的AOP😁热门专栏推荐想学习vue的可以看看这个java基础合集数据库合集redis合集nginx合集linux合集🤔欢迎大家加入我的社区尘觉社区。

业精于勤,荒于嬉 870

430单片机实现三人投票表决器_基于单片机的五人表决器的设计

姚海云+马野摘要:本设计利用51单片机,按键开关模块,数码管显示模块和LED模块来实现一个简单的五人表决器的功能。按键开关模块中的键2~键6表示五个人,由5个人来投票,当同意的票数大于或者等于3人时,数码管显示同意的人数,说明表决通过。当表决的人数小于3时,数码管显示同意的人数。关键词:表决器;单片机;流水灯;数码管;矩阵键盘;时钟中图分类号:TP391 文献标识码:A 文章编号:1009-304...

weixin_33277215的博客 2557

声纹识别实战:用Python从零搭建一个简易声纹验证系统(附完整代码)

本文是一份详细的声纹识别实战指南,教你使用Python从零搭建一个简易的声纹验证系统。文章涵盖了从音频采集、预处理、MFCC特征提取,到基于高斯混合模型(GMM)的建模与验证全流程,并提供了完整的代码实现,帮助开发者快速掌握这项生物特征识别核心技术。

ik6789012的博客 229

切面的用法,获取切点的参数,以及返回值

监听到了impl下面的所有的方法     ps:注意   由@Before注解定义的方法会在 execution() 表达式内的方法被调用之前执行 由@After注解定义的方法会在 execution()表达式内的方法被调用之后执行,无论方法执行成功与否 由@AfterReturning注解定义的方法会在 execution()表达式内的方法被调用之后并成功返回结果后执行,若...

hello world 1万+

制作Ubuntu22.04启动盘

现在越来越多程序代码都需要运行在linux环境下,运行这些代码的前提是安装一个稳定的linux操作系统。本文选择Ubuntu 22.04去制作系统启动盘。本文主要对ubuntu22.04的启动盘制作过程进行了详细的说明,希望能帮助到有需要的朋友。

lyx_ok的博客 1万+

使用 aop拦截 springMVC的controller并获取请求参数及返回结果

有人说使用aop拦截不到springMVC的controller,一般出现此种情况大多是由于配置错误造成,不废话直接进入主题: 1、applicationContext.xml 配置扫描 除@controller外的bean 2、 applicationContext-mvc.xml 配置扫描 @controller bean

tianmangshan80的专栏 1万+

SAP Retail 补货里的 Requirement Groups,站点和商品太多时,主数据维护如何做减法

SAP Retail补货主数据设计中,Requirement Groups(需求组)是常被低估但至关重要的分类机制。它通过将具有相同补货需求的接收方(如门店)按商品分类(Merchandise Category)分组,大幅降低主数据维护量。在大型零售场景中(如800家门店、6万商品),直接维护每个门店和商品的组合参数会导致维护量失控。Requirement Groups允许企业按品类特性(如乳制品、饮料等)为不同门店组设置统一补货参数,并随业务变化灵活调整。该机制与商品分类紧密绑定,不同于MRP Group

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 67

IEC 104电力规约详细解读(五) - 遥控

主站下发遥控选择命令,子站进行遥控选择返校,若成功则回答遥控选择成功报文,若失败则回答失败报文。主站下发取消遥控命令或者遥控执行命令行。子站皆以报文的镜像确认。遥控命令用来实现对一个可操作设备状态的改变。在配电自动化中,包括单点命令和双点命令。通常,单点命令用于控制单点信息对象;双点命令用于控制双点信息对象。

张二狗的博客 7347

SpringMVC如何实现aop

aop面向切面的编程AspectOriented Programming 我想创建一个类来监听controller ,当controller执行方法的时候将入参和输出参数打印出来 package com.wdg.controller; import java.text.SimpleDateFormat; import java.util.Date; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.ProceedingJoin..

datouniao1的博客 669

harbor x509: certificate signed by unknown authority【20251222】

本教程通过「合并证书链(服务器端)+ 预置根 CA(客户端)」彻底解决了自签名证书的 x509 错误,同时集成了 Trivy 漏洞扫描,实现了 Harbor 从搭建到实用的全流程。证书链合并是服务器端的关键,确保客户端获取完整信任路径;客户端需同时配置「系统信任库 + Docker 信任目录」,避免 Docker 独立信任机制导致的问题;所有 IP 需保持一致(Harbor 配置、证书绑定、客户端访问),是避免错误的基础。

老韩的Linux云计算架构师进阶之路 681

日志切面Aop,打印入参和返回值

logAspect

tumu6889的博客 4023

《一》:LBE,VR 大空间系列——场景环境需求解析

当前,大量 VR 体验活动在室内场地开展。因此,对于场地照明有特定要求:除天花板外,场地的所有表面均需有照明覆盖。这是为了保证玩家无论处于场地的哪个位置,地面与墙面都不会出现明显的影子。场地内不建议安装射灯或高强度的点光源,若已安装此类灯具,需使用柔光板进行遮盖。此外,要避免在阳光下使用 VR 设备台。参考图(请忽略其中Maker标签)

unitygroup的博客 942

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Spring AOP切面编程切入Controller打印日志

当Controller层,收到页面请求,我们需要记录一下相关日志,一般我们都是在Controller里的每个方法上加上一段: logger.info("收到请求"); 这样不仅增加代码量,还增加重复代码; 如何进行优化呢?Spring AOP切面编程可以帮助我们实现! 一、我们先引入所需的jar包: <dependency> <groupId>org.spr......

4324

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

切面实现对controller层进行统一日志记录

切面实现对controller层进行统一日志记录切面通用父类自定义注解需要的一些工具类业务模块使用 本文章项目开源地址 切面通用父类 这里实现通用父类,里面写好了对请求的信息(url、方法、请求头信息、参数)等信息,并对执行的controller的方法名、方法参数值进行记录,无论方法执行完成或者执行异常都会有相应的记录输出。各个业务模块需要继承这个父类,并重新切片的方法,以此实现自定义切入点。这里...

qq_33140565的博客 2244

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Spring Boot 2.x 教程系列 | AOP 切面统一打印请求日志

欢迎关注微信公众号: 小哈学Java文章首发于个人网站 https://www.exception.site/springboot/spring-boot-aop-web...

犬小哈 3159

springboot 配置aop切面记录请求日志信息

该项目展示如何使用 aop 切面对请求进行日志记录,以及记录 UserAgent 的信息。 一、新建springboot配置pom文件如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.or...

DYZ的博客 923

springboot切面返回值_SpringBoot之切面AOP

SpringBoot提供了强大AOP支持,我们前面讲解过AOP面向切面,所以这里具体AOP原理就补具体介绍;AOP切面主要是切方法,我们一般搞一些日志分析和事务操作,要用到切面,类似拦截器;@Aspect注解是切面注解类@Pointcut切点定义@Before是方法执行前调用@After是方法执行后调用@AfterReturning方法执行返回值调用Service层本身就可以切入事务,所以我们这类...

weixin_35695430的博客 1758

Spring Boot 通过自定义注解和AOP 切面实现统一打印接口出入参请求日志

一、先看看切面日志输出效果 在看看实现方法之前,我们先看下切面日志输出效果咋样: 从上图中可以看到,每个对于每个请求,开始与结束一目了然,并且打印了以下参数: URL: 请求接口地址; Description: 接口的中文说明信息; HTTP Method: 请求的方法,是 POST, GET, 还是 DELETE 等; Class Method: 被请求的方法路径 : 包名 + 方法名; IP: 请求方的 IP 地址; Request Args: 请求入参,以 JSON 格式输出; Response A

我在深圳的这些日子的博客 2203

SpringBoot三部曲之Controller 请求日志切面 AOP

SpringAOP .切面,是Spring得一大特性,使用目前是使用得面还很窄,用气对Controller层做日志管理,其实还可以做参数校验和RSA校验等一系列前置操作。 在所有Controller得每一个方法里面做请求日志记录,会让代码变得很臃肿和阅读得低效。没有使用统一请求日志记录得时候,我记录Controller的日志十分痛苦: @RestCon...

weixin_33721427的博客 862

AOP切面实现接口日志记录

用于封装需要记录的日志信息,包括操作的描述、时间、消耗时间、url、请求参数和返回结果等信息。 package com.macro.mall.tiny.dto; /** * Controller层的日志封装类 */ public class WebLog { /** * 操作描述 */ private String description; ...

Fiang-As-Dre的博客 983

Controller、Service日志切面 —— springboot

1、maven <!-- aop --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> ...

lov_sb 1535

【Spring】使用Aop实现统一记录请求方法返回值日志及统一异常处理

文章目录使用aop实现统一记录请求方法返回值日志及统一异常处理 使用aop实现统一记录请求方法返回值日志及统一异常处理 引入aop依赖的jar包 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId>...

墩墩分墩 1620
上一篇: 发生异常时,从ExceptionHandler中获取Body参数进行分析
hwmhehe
博客等级 码龄13年 86粉丝 106原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值