spring 切面日志----》controller

SpringBoot使用切面添加controller日志,避免少造轮子 SpringBoot使用切面添加controller日志,避免少造轮子。 阅读详情

在 controller 中 纯粹的为 接受请求的控制,只要两件事情,一个是 接受请求,第二个事情,就是条件判断(不建议在service中进行判断,因为有些系统是分布式的,可能需要发送一次请求,加大系统的开销,所以在controller中就进行判断,减轻系统的压力),但是比如日志操作。不应该在controller中进行大量的写,但是为了日后好排查问题和维护,日志又是不可或缺的。所以,切面日志变得很重要了。

首先 日志的记录应该是 方法级别的,所以我们写一个注解。来标记 此方法是需要记录日志的。

关于 自定义注解的学习,也是我的博客

https://blog.youkuaiyun.com/drsbbbl/article/details/96478668

@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ControllerLog {
    /**
     * 方法描述
     * @return
     */
    public String description() default "";
}
 

首先我们要有切面类: 关于pom文件等会提供个下载连接

切点表达式写法: 具体看 spring官方文档

这种写法 还是看到spring 官方这么写很方便 就拿来用了

 

 

 

 

 

主要分为 请求开始打印所有的请求参数  我是喜欢写在方法的参数上,有时也可以通过request 获取到 下面 是可以通过request获取方法参数的

    Map<String,String[]> map = request.getParameterMap();
        
        for(String key : map.keySet()) {
            logger.debug("--debug--day_report key:" + key + ", value:" + map.get(key));
            String[] value = map.get(key);
            
            if(value == null) {
                continue;
            }
            
            if(value.length == 1) {
                
                String v = value[0];
                
                if(v == null || v.trim().equals("")) {
                    
                    continue;
                }
                
                params.put(key, v);
            } else {
            
                params.put(key, value);
            }
        }

在Spring Boot 项目中使用Spring AOP实现切面日志 导语   大数据时代,数据来源是比较重要的。而日志作为用户操作、系统监控、业务分析等都比较重要的一个环节。能更好的使用日志显得尤为重要。那么在Spring Boot的项目中如何能更加高效的记录Controller层的日志呢?这个就是今天需要讨论的问题。   直接上代码,不过在实现之前,为了让项目支持AOP的操作这里首先需要引入一个maven依赖,这里对于AOP的原理就先不做说明了,是一个比较大的内容。 <!-- SpringBoot AOP 场景启动器 --> . 阅读详情

相关推荐

Spring Boot - aop 切面对请求进行日志记录

** * < p > * 测试 Controller * < / p > * / @Slf4j @RestController public class TestController {/ ** * 测试方法 http : // localhost : 8080 / test * * @param who 测试参数 * @ return {

学无止境 782

spring拦截器传递传递参数到controller+Aop切面环绕方法传递参数到目标方法

一.前言 由于业务需要,在网上找了很久得到了这两种方式。本文代码偏少,主要讲解一下怎么传,如何接收,也记录一下,以便之后查看。 二.Spring拦截器传递参数到controller 三.Aop切面传递参数到目标方法 四.总结 ...

Qinejie1314520的博客 1万+

详细教程:如何使用elasticsearch 8.x进行向量搜索

大模型的热度使得向量数据库和embedding也成了ai领域的热门话题,有别于从头开始训练一个大模型或基于基础模型进行微调的方式,embedding检索相关上下文是对大模型进行定制的各种方法中成本最低、技术实现最便捷的方式。从技术实现的角度,

qq_50790981的博客 1万+

基于spring boot的controller日志切面处理

基于spring boot的controller日志切面处理 问题需求:项目中需要在日志中记录接口传入值,接口调用ip,接口调用时间等等 处理方式:在controller层加切面处理 1.需要的包,springboot 中aop切面,两个工具类,hutool和jackson pom如下(版本可以更换): <dependency> <grou...

hhttim的博客 5087

别再手动更新Excel了!用Jira看板管理你的个人项目(附保姆级配置流程)

本文详细介绍了如何利用Jira看板替代Excel进行个人项目管理,提供从注册到配置的保姆级教程。通过极简看板模式、自动化规则和数据分析功能,帮助用户实现任务可视化、协作高效化和提醒自动化,大幅提升个人工作效率。特别适合需要管理复杂个人项目的用户。

weixin_42699679的博客 229

本地AI助手部署指南:DeepSeek Harness与Ollama集成实践

AI Agent作为当前人工智能领域的热门技术,通过模拟人类决策过程,能够自主规划、调用工具并执行复杂任务。其核心原理在于将大语言模型的推理能力与外部工具API相结合,形成可闭环的工作流。这种技术架构的价值在于显著提升了AI系统的实用性和自动化水平,使其从单纯的对话工具转变为能够解决实际问题的智能助手。在应用场景上,AI Agent广泛应用于代码生成、数据分析、自动化办公等领域。本文聚焦于如何通过DeepSeek Harness平台与Ollama本地模型的集成,实现隐私安全、离线可用的AI助手部署方案,特别

dengjuanshou7445的博客 475

使用SpringAop切面编程通过Spel表达式实现Controller权限控制

我们仅需要定义一个value属性用于接收表达式即可。@Target({/*** permissionAll()-----只要配置了角色就可以访问* hasPermission("MENU.QUERY")-----有MENU.QUERY操作权限的角色可以访问* hasAnyPermission("MENU.QUERY","MENU.ADD")-----有MENU.QUERY操作权限的角色可以访问* permitAll()-----放行所有请求。

Blueeyedboy521的博客 1265

深入解析JESD204B Periodic SYSREF在多ADC/DAC系统中的同步优化策略

本文深入探讨了JESD204B Periodic SYSREF在多ADC/DAC系统中的同步优化策略,针对雷达阵列和宽带通信系统中的同步精度问题,详细解析了硬件实现细节、参数配置实战经验及系统级优化方法。通过案例分析和技术要点,帮助工程师解决由温度漂移和时钟抖动引起的同步挑战,提升系统性能。

weixin_29267307的博客 137

spring aop切面应用,记录日志、请求处理耗时

依赖jar包 aopalliance.jar、aspectjrt.jar、aspectjweaver-1.6.jar spring配置文件(标红部分): <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:

hgg923的专栏 6512

避坑指南:GROMACS模拟中.tpr、.xtc、.edr、.cpt文件你用对了吗?从生成到分析全流程解析

本文详细解析GROMACS分子动力学模拟中.tpr、.xtc、.edr、.cpt等核心文件的使用技巧,从文件生成到轨迹优化、能量分析的全流程避坑指南。重点介绍拓扑文件校验、轨迹格式选择、周期性边界处理等实战经验,帮助科研人员高效管理模拟数据并准确提取关键能量信息。

weixin_30631587的博客 118

【实战】CANOE实现UDS安全访问过程的CAPL脚本

首先我已经有了包含安全访问算法的dll文件,并通过Diagnostics/ISO TP Configuration中加载了此dll文件,如下。在on start部分,要将“ECU qualifier“作为参数,执行diagSetTarget函数。这个函数是用于设置tester从现在开始与之通信的目标ECU,并配置/建立与该ECU的通信通道。我最近在做密钥学习上位机时,遇到一些问题:如何用CAPL脚本实现安全访问过程?ECU Qualifier可以通过加载cdd文件后,在如下位置找到。CAPL脚本如何编写。

weixin_46481662的博客 4939

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

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

4325

7.6 GPU页表更新机制

本文分析了AMDGPU驱动中BO到VA映射的页表更新实现机制。核心流程通过amdgpu_vm_bo_update()函数触发,支持CPU直接写入和SDMA异步命令两种更新模式。系统根据VRAM可见性自动选择最优更新策略,处理三种主要场景:命令提交、BO迁移和BO销毁。关键实现包括DMA地址数组处理、权限标志合并和BO迁移状态转换,最终通过amdgpu_vm_update_range()完成硬件页表更新。该机制有效平衡了更新延迟与吞吐量,为GPU虚拟内存管理提供基础支撑。

图形/计算GPU的驱动与虚拟化技术分享园地 2470

Spring AOP实现Controller层日志切面详解

匹配com.sdut包及其子包中所有Controller结尾的类匹配所有public方法日志切面的核心价值统一日志格式,便于日志分析非侵入式监控,无需修改业务代码自动记录关键信息,提升排查效率性能监控,识别系统瓶颈最佳实践建议:生产环境中建议将敏感字段过滤配置提取到配置文件中,根据不同环境动态调整过滤规则,同时建议添加请求唯一标识便于链路追踪。

m0_74968370的博客 535

基于simulink创建一个针对双馈异步风力发电机并网运行的仿真模型

摘要:本文详细介绍了基于Simulink的双馈异步风力发电机(DFIG)并网运行仿真建模方法。系统包含风速输入、风力机、双馈发电机、电力电子变换器、控制器和并网接口等模块,通过8个步骤完整呈现了建模流程,包括风速模拟、机械功率计算、发电机特性建模、变流器控制策略设计等关键环节。仿真可评估系统在不同风速条件下的动态响应、最大功率跟踪能力和发电效率,为风力发电系统的优化设计提供有效验证手段。模型可根据实际需求扩展环境因素和电网交互等细节,提高仿真精度。

amy_mhd的博客 334

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

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

基于spring 切面,切controller层的操作日志

基于spring aop 切controller层的操作日志

xue_tiger的博客 956

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

为spring的controller做一个打印日志、验证参数、提供默认异常处理的切面

为spring的controller做一个打印日志、验证参数、提供默认异常处理的切面

w36680130的博客 257

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Spring MVC通过AOP切面编程 来拦截controller 实现日志的写入

首选需要参考的是:【参考】http://www.cnblogs.com/guokai870510826/p/5977948.html              http://www.cnblogs.com/guokai870510826/p/5981015.html 1:首先定义maven <!--配置aop切面编程需要引入的包--> &lt...

weixin_30297281的博客 187

Spring MVC通过AOP切面编程来拦截controller

示例1:通过包路径及类名规则为应用增加切面 该示例是通过拦截所有com.dxz.web.aop包下的以Controller结尾的所有类的所有方法,在方法执行前后打印和记录日志到数据库。 新建一个springboot项目 1:首先定义maven <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2

weixin_42073629的博客 3605

Spring Boot AOP 实战:优雅实现 Controller 全局日志统一打印

Spring Boot AOP 实战:优雅实现 Controller 全局日志统一打印

weixin_42326851的博客 2312

Springcloud中Controller和Feign的日志切面实现

组件Feign自身的日志是debug级别并且日志行数太多,不符合我们精简日志的要求,故自己实现日志切面。

lisheng19870305的专栏 1494

使用 AOP 进行切面编程(打印日志)

场景 : 针对 controller 层 使用 AOP 进行日志打印 思路: 使用 aop 进行切面编程, 针对 controller 层所有的类,进行方法切面, 打印日志 1. 先在 pom.xml 文件中引入 aop 的依赖 <!-- aop --> <dependency> <groupId>org.springframework.boot</groupId> .

weixin_38399962的博客 1693

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

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

qq_33140565的博客 2244

Spring AOP 实现拦截Controller中的方法

因为Spring的Bean扫描和Spring-MVC的Bean扫描是分开的, 两者的Bean位于两个不同的Application, 而且Spring-MVC的Bean扫描要早于Spring的Bean扫描, 所以当Controller Bean生成完成后, 再执行Spring的Bean扫描,Spring会发现要被AOP代理的Controller Bean已经在容器中存在, 配置AOP就无效了。同样这

chy2z的专栏 4080

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

1,加入aop包 <!-- aop 切面 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency> 2,切面代码 /** * 定义切面,记录请求参数与返回结果 * * @author: hewenmin * @d

H的博客 1377

mall大型企业项目:11、面向aop编程之controller切面日志

面向aop编程之controller切面日志1、WebLog2、WebLogAspect3、访问请求4、控制台可记录日志 1、WebLog package com.macro.mall.common.domain; import lombok.Data; import lombok.EqualsAndHashCode; /** * Controller层的日志封装类 * Created by macro on 2018/4/26. */ @Data @EqualsAndHashCode(callS

ljs13168734665的博客 194
上一篇: spring boot --mybatis 自定义分页
下一篇: 正则表达式 匹配 excel 表和 图片 word 等 文件名 正则 表达式 验证以什么结尾
drsbbbl
博客等级 码龄9年 19粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值