当前位置: 首页 > news >正文

Springboot整合AOP和注解实现日志记录——Java入职第十二天

前言

        作为java开发工程师,日常curd工作少不了,特别是后台系统的操作,对于每一项操作我们都要记录,所以就得有操作日志,操作日志能够排除是开发的锅,是运营或者产品自己操作的。那么就有个问题,每次在业务处理最后,调用操作日志服务保存响应的日志,但是这段代码是很冗余的。

        其实想要解决这个问题,方法很多,可以用工厂模式,日志模板,日志切面等等。本讲就是利用Spring的AOP面向切面编程来实现日志操作,Sping官网也说了AOP主要用于日志,事务等处理,同时,自定义一个日志注解,那些业务操作需要记录日志,只要添加对应的注解就行,使得业务代码和日志代码低耦合。

一、AOP面向切面编程

        AOP(Aspect Oriented Programming,面向切面编程),可以说是 OOP(Object Oriented Programing,面向对象编程)的补充和完善。OOP 引入封装、继承和多态性等概念来建立一种对象层次结构,用来模拟公共行为的一个集合。当我们需要为分散的对象引入公共行为的时候,OOP则显得无能为力。也就是说,OOP 允许你定义从上到下的关系,但并不适合定义从左到右的关系。例如日志功能,日志代码往往水平地散布在所有对象层次中,而与它所散布到的对象的核心功能毫无关系。对于其他类型的代码,如权限管理、异常处理等也是如此

相关文章:

Springboot整合AOP和注解实现日志记录——Java入职第十二天

前言 作为java开发工程师,日常curd工作少不了,特别是后台系统的操作,对于每一项操作我们都要记录,所以就得有操作日志,操作日志能够排除是开发的锅,是运营或者产品自己操作的。那么就有个问题,每次在业务处理最后,调用操作日志服务保存响应的日志,但是这段代码是很冗余…...

shell脚本监控ip和端口的运行状态并触发邮件告警

ping端口shell代码 ping不通发邮件通知 直到ping通再次发送成功邮件 #!/bin/bash Datedate -d "today" "%Y-%m-%dT%H-%M-%S" #echo "根据当前时间创建日志文件" mkdir -p /log/Ping/ping_server touch /log/Ping/${Date}_ping_server.log ip_li…...

二三维电子沙盘数字沙盘虚拟现实开发教程第14课

二三维电子沙盘数字沙盘开发教程第14课 很久没有写了,主要前段时间在针对怎么显示高精度的 倾斜数据而努力,现在终于实现了效果不错。以前的版本显示倾斜数据控制不太好。 对了。目前系统暂只支持smart3d生成的kml格式的数据,由专有的录入程…...

如何五分钟设计制作自己的蛋糕店小程序

在现如今的互联网时代,小程序已成为企业推广和销售的重要利器。对于蛋糕店来说,搭建一个小程序可以为其带来更多的品牌曝光和销售渠道。下面,我们将以乔拓云平台为例,来教你如何从零开始搭建自己的蛋糕店小程序。 首先&#xff0c…...

(笔记二)利用opencv调用鼠标事件在图像上绘制图形

目录 (1)查看cv2所支持的鼠标事件(2)通过鼠标事件在图像上做标记(3)高级操作:通过移动鼠标在图像绘制图形、曲线 该功能主要创建一个鼠标事件发生时执行的回调函数。鼠标事件可以是任何与鼠标有…...

FreeSWITCH 1.10.10 简单图形化界面4 - 腾讯云NAT设置

FreeSWITCH 1.10.10 简单图形化界面4 - 腾讯云NAT设置 0、 界面预览1、 查看IP地址2、 修改协议配置3、 开放腾讯云防火墙4、 设置ACL5、 设置协议中ACL,让PBX匹配内外网6、 重新加载SIP模块7、 查看状态8、 测试一下 0、 界面预览 http://myfs.f3322.net:8020/ 用…...

Debezium系列之:Debezium Server Offset编辑器

Debezium系列之:Debezium Server Offset编辑器 一、认识Offset编辑器二、Offset编辑器目录结构三、Offset编辑器系统环境要求四、pom.xml五、Main.java六、CommandLineInterface.java七、OffsetFileController.java八、OffsetEditorApp.java九、编译项目十、启动Offset编辑器一…...

缓存穿透、缓存击穿、缓存雪崩

一、概念介绍 缓存穿透: 定义:缓存穿透指的是请求查询缓存和数据库中都不存在的数据,从而导致每次请求都直接访问数据库。 原因:通常是由于恶意请求、非法输入或系统漏洞导致的。攻击者故意提交无效的查询,绕过缓存直…...

1978-2022年全国整体GDP平减指数计算模板(可任意调整基期)

1978-2022年全国整体GDP平减指数计算模板(可任意调整基期) 1、时间区间:1978-2022年 2、指标:名义GDP、实际GDP、GDP平减指数 3、中国GDP平减指数计算公式可以给定基期,自动计算平减指数,可根据需要任意…...

sklearn 笔记: neighbors.BallTree

球树结构 1 基本使用方法 sklearn.neighbors.BallTree(X, leaf_size40, metricminkowski, **kwargs) 2 主要参数说明 X 输入数据,维度为 (n_samples, n_features) n_samples 是数据集中点的数量n_features 是参数空间的维数leaf_size 点数少于多少时&#xff0c…...

【java】【已解决】IDEA启动报错:Lombok Requires Annotation Processing

解决办法: 1、根据异常提示操作: 直接点击错误提示后面的蓝色标识【Enable】(小编点完了所以变灰色),此操作等价于下面的步骤: 【File】-->【Settings】-->【Build】-->【Compiler】-->【Ann…...

生物笔记——暑期学习笔记(三)

生物笔记——暑期学习笔记(三) 文章目录 前言一、R篇1. 数据筛选2. 字符串处理3. 练习 二、生信篇1. blast 基因家族鉴定2. hmm鉴定3. 理化性质与亚细胞定位4. 基因重复类型分析5. 家族成员染色体位置分析6. 基因组共线性分析7. 多序列比对,构…...

EPICS自定义设备支持--longin记录的设备支持编写

以下详细描述了一个longin记录设备支持模块编写过程以及用于测试这个模块的IOC的操作步骤: 1)创建一个目录lidriver用于保存这个IOC目录结构: orangepiorangepi4-lts:~/epics$ mkdir lidriver orangepiorangepi4-lts:~/epics$ ls example …...

SpringCloud(十)——ElasticSearch简单了解(二)DSL查询语句及RestClient查询文档

文章目录 1. DSL查询文档1.1 DSL查询分类1.2 全文检索查询1.3 精确查询1.4 地理查询1.5 查询算分1.6 布尔查询1.7 结果排序1.8 分页查询1.9 高亮显示 2. RestClient查询文档2.1 查询全部2.2 其他查询语句2.3 排序和分页2.4 高亮显示 1. DSL查询文档 1.1 DSL查询分类 查询所有…...

Python Flask Web开发一:环境搭建

一、创建环境 创建一个项目文件夹和一个.venv文件夹 $ mkdir myproject $ cd myproject $ python3 -m venv .venv 二、激活环境 在开始项目之前,请激活相应的环境 激活成功的话会在开发工具自带的终端那里看到以(.venv)开头的 $ . .venv…...

DataTable扩展 列转行方法(2*2矩阵转换)

源数据 如图所示 // <summary>/// DataTable扩展 列转行方法&#xff08;2*2矩阵转换&#xff09;/// </summary>/// <param name"dtSource">数据源</param>/// <param name"columnFilter">逗号分隔 如SDateTime,PM25,PM10…...

Decomposed Prompting: A MODULAR APPROACH FOR SOLVING COMPLEX TASKS

本文是LLM系列文章&#xff0c;针对《Decomposed Prompting: A MODULAR APPROACH FOR SOLVING COMPLEX TASKS》的翻译。 分解提示&#xff1a;一种求解复杂任务的模块化方法 摘要1 引言2 相关工作3 分解提示4 案例5 结论 摘要 小样本提示是一种使用大型语言模型&#xff08;L…...

​无需测试环境!如何利用测试脚手架隔离微服务,实现功能自动化

想在不建立完整测试环境的情况下测试微服务&#xff1f; 想在将变更推送到主线分支之前完成测试&#xff1f; 这是我们在进行项目交付时经常遇到的难题。最近&#xff0c;当我们开始一个新的项目&#xff0c;为客户构建一个新的聚合平台时&#xff0c;我们希望将尽可能多的测…...

HOperatorSet.Connection 有内存泄漏或缓存

开发环境 Win7 VS2002 halcon12&#xff0c; 直接运行Debug的exe 宽高5000&#xff0c;单格1*1的棋盘占用内存 手动释放region regionConnect private void butTemp_Click(object sender, EventArgs e) { butTemp.Enabled false; HOperatorS…...

力扣2. 两数相加

2. 两数相加 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外&#xff0c;这两个…...

小白也能懂:雪女-斗罗大陆-造相Z-Turbo文生图模型使用详解

小白也能懂&#xff1a;雪女-斗罗大陆-造相Z-Turbo文生图模型使用详解 1. 模型介绍 1.1 什么是雪女-斗罗大陆-造相Z-Turbo 雪女-斗罗大陆-造相Z-Turbo是一款专门用于生成《斗罗大陆》风格图片的AI模型&#xff0c;特别擅长创作与"雪女"角色相关的精美图像。这个模…...

intv_ai_mk11开源可部署指南:下载镜像、启动服务、浏览器访问、安全注意事项全涵盖

intv_ai_mk11开源可部署指南&#xff1a;下载镜像、启动服务、浏览器访问、安全注意事项全涵盖 1. 项目概述 intv_ai_mk11是一款基于Llama架构的AI对话机器人&#xff0c;拥有7B参数规模&#xff0c;能够运行在GPU服务器上提供智能对话服务。这个开源项目可以帮助开发者快速部…...

Java互联网大厂求职面试实录:Spring Boot、微服务与全栈技术深度解析

Java互联网大厂求职面试实录&#xff1a;Spring Boot、微服务与全栈技术深度解析 面试场景介绍 本文以互联网大厂面试为背景&#xff0c;通过严肃的面试官与搞笑的水货程序员“谢飞机”的对话&#xff0c;深入探讨Java求职者面试中常见的技术问题。涵盖Java SE、Jakarta EE、Sp…...

NovelAI:从文本生成到内容创作的AIGC实践

1. NovelAI&#xff1a;你的AI创作助手 第一次接触NovelAI时&#xff0c;我正被一篇商业方案折磨得焦头烂额。凌晨三点的咖啡杯旁&#xff0c;这个基于GPT模型的AI工具在15分钟内就帮我完成了初稿框架&#xff0c;那一刻我就知道&#xff0c;内容创作的方式正在被重新定义。Nov…...

停止学习新语言!2026年技术人的反内耗宣言

一、技术内耗的困局&#xff1a;语言焦虑与效率陷阱2026年的技术圈&#xff0c;Python稳居TIOBE榜首&#xff0c;Rust强势崛起&#xff0c;TypeScript重构前端生态……语言迭代的速度远超人类学习极限。测试从业者深陷三重内耗漩涡&#xff1a;工具链绑架&#xff1a;70%自动化…...

Clipboard命令行参数完整指南:掌握所有可用选项的终极手册

Clipboard命令行参数完整指南&#xff1a;掌握所有可用选项的终极手册 【免费下载链接】Clipboard &#x1f60e;&#x1f3d6;️&#x1f42c; Your new, &#x1d667;&#x1d65e;&#x1d659;&#x1d664;&#x1d663;&#x1d660;&#x1d66a;&#x1d661;&#x1…...

MORNSUN金升阳 E0505S-1WR3 SIP 隔离电源模块

特性隔离电压&#xff1a;3000VDC空载功耗低&#xff1a;0.025W(Typ.)效率&#xff1a;高达90%工作环境温度&#xff1a;-40C~85CMTBF 2350万小时(3500000Hrs)输出短路保护&#xff1a;可持续短路保护&#xff0c;自动恢复小型SIP封装&#xff0c;塑料外壳国际标准引脚方式纹波…...

OpenClaw语音交互:Phi-3-mini接入麦克风输入实战

OpenClaw语音交互&#xff1a;Phi-3-mini接入麦克风输入实战 1. 为什么需要语音交互能力 上周我在整理电脑文件时突然想到一个问题&#xff1a;当我的双手被占用时&#xff08;比如正在做饭或修理设备&#xff09;&#xff0c;如何让OpenClaw帮我执行任务&#xff1f;传统的键…...

Oracle19c EM Express配置与访问全攻略:从零到可视化管理的实践指南

1. 环境准备与基础检查 第一次接触Oracle 19c EM Express时&#xff0c;很多人会直接跳进配置环节&#xff0c;结果往往被各种报错打得措手不及。我刚开始接触时也犯过这个错误&#xff0c;后来才发现做好前期检查能省去80%的麻烦。下面这些准备工作&#xff0c;建议你逐项打勾…...

ROS2开发环境搭建避坑指南:Win11 + WSL2 + Ubuntu 22.04 从安装到测试的完整记录

ROS2开发环境搭建实战&#xff1a;Win11与WSL2深度适配指南 环境准备与系统调优 在Windows 11上搭建ROS2开发环境&#xff0c;选择WSL2作为Linux子系统是最佳实践方案。不同于传统虚拟机方案&#xff0c;WSL2提供了接近原生Linux的性能表现&#xff0c;同时完美集成Windows桌…...