java springboot中使用 AOP监听方法执行周期

首先 我们在 pom.xml 中 dependencies标签中加入依赖

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

然后 我们随便创建一个类
编写代码如下

package com.example.webdom.domain;import org.springframework.stereotype.Component;@Component
public class user {public void add(){System.out.println("add......");}
}

user 就是个普通的类 其中 有两个点 首先 要写一个方法 给我们的aop监听 这里我写了个add内容也是随便写了两下 然后要声明Component 让全局扫描能拿到你这个类

然后 我们在 config目录 如果没有 config 就创建一个 下面创建一个配置类 这里就叫 MyAspect 吧
参考代码如下

package com.example.webdom.config;import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;@Aspect
@Component
public class MyAspect {// 定义切点@Pointcut("execution(* com.example.webdom.domain.user.add(..))")public void serviceMethods() {System.out.println("aop监听到了");}// 定义通知@Before("serviceMethods()")public void beforeAdvice(JoinPoint joinPoint) {// 在目标方法执行前执行的逻辑System.out.println("Before method: " + joinPoint.getSignature().getName());}
}

在这里插入图片描述
之前 我们也讲过aop的五大通知类型

@Before注解标注的方法 会在指向的方法执行前执行
@After注解标注的方法 会在指向的方法执行结束后执行
@AfterReturning标注的方法 也是在被标注的方法结束执行 但他与After的不同在于 他是等被指定方法给出返回值后执行 但如果你的方法没有返回值 他也会走的
@AfterThrowing注解标注的方法 会在指定方法发生异常时执行
@Around标注的方法 相对特殊一点 这个叫环绕通知 在方法执行前和执行后 都会执行 但执行的片段不一样
他接收一个ProceedingJoinPoint 类型的对象参数 对象中有一个proceed函数 需要在方法中调用
写在调用proceed前的代码 会在指定方法前执行 而在proceed后面的则反过来 会在指定方法执行后执行

这里 我们绑定了Before 会在add函数执行前执行
然后 这里 我们写了整个路径 com.example.webdom.domain.user.add 这个不用担心 只要没报错 就是对的路径

然后 我们找个地方去用一下它
在这里插入图片描述
这到没什么讲究 的 就是随便找个地方 条件装配一下 user类 然后调用一下它的 add方法

运行结果如下 从输出上看 没有任何 问题
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/222953.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学习grdecl文件格式

一、初步了解 最近在学习grdecl文件格式&#xff0c;文档不多。查找资料发现&#xff0c;这个格式的文件是由斯伦贝谢公司的ECLIPSE专业软件生成的。 搜到一些文档&#xff0c;都是2010年之前的&#xff0c;似乎有些用处。文档也交代了这个文件格式分为二进制和文本格式…

设计问卷调查问题的技巧二:确定问题的结构与顺序

上篇文章中&#xff0c;我们了解到设计问卷调查问卷的技巧有保持问题中立、少用开放式问题、保持全名平衡的答案集、谨慎设置单一回答。在这篇文章中&#xff0c;我们将继续深入探讨设计问卷调查问题的剩余5大技巧&#xff01; Tip5&#xff1a;注意问题的顺序 虽然您可以任意…

Project DESFT 白皮书中文版——应用于普惠金融的可信数字凭证解决方案

1. 概述 Project DESFT 是由 Solv 基金会与 zCloak Network 联合设计孵化&#xff0c;以跨境贸易和金融服务为场景的分布式可信数字凭证解决方案&#xff08;Distributed Trusted Digital Credential Solution&#xff09;&#xff0c;项目获得新加坡金管局&#xff08;Monetar…

Vsan数据恢复—Vsan分布式存储数据恢复案例

vSAN故障&#xff1a; 一台存储采用了VSAN分布式存储架构&#xff0c;存储内共有24块硬盘存储数据。 这台vSAN存储设备关机重启。经过数据恢复工程师的检测&#xff0c;发现vSAN逻辑架构出现故障&#xff0c;上层虚拟机瘫痪&#xff0c;存储内的数据丢失。 vsan数据恢复过程&am…

【ONE·Linux || 网络基础(四)】

总言 主要内容&#xff1a;传输层UDP、TCP协议基本介绍。UDP报文格式、TCP报文格式、三次握手四次挥手、TCP可靠性策略说明。 文章目录 总言8、UDP协议&#xff08;传输层一&#xff09;8.1、传输层预备知识8.1.1、端口号8.1.2、一些指令&#xff08;netstat、pidof、xargs&am…

ChatGLM2详细安装部署(chatglm2大模型安装步骤三)

ChatGLM2安装部署 1.服务器配置 服务器系统:Centos7.9 x64 显卡:RTX3090 (24G) 虚拟环境:Miniconda3 2.安装部署 2.1 ChatGLM2下载 输入命令:git clone https://github.moeyy.xyz/https://github.com/THUDM/ChatGLM2-6B.git 输入命令:cd ChatGLM2-6B 注:https://g…

TP4066L是一款完整的单节锂离子电池采用恒定电流/恒定电压线性充电器。

TP4066L 采用ESOP8/DFN2*2-8封装 1A线性锂离子电池充电器 描述&#xff1a; TP4066L是一款完整的单节锂离子电池采用恒定电流/恒定电压线性充电器。其底部带有散热片的ESOP8DFN2*2-8封装与较少的外部元件数目使得TP4066L成为便携式应用的理想选择。TP4066L可以适合USB电源和适…

软件工程--面向对象分析用通俗语言20小时爆肝总结!(包含用例图、活动图、类图、时序图......)

面向对象方法分为面向对象分析&#xff08;OOA&#xff09;、面向对象设计&#xff08;OOD&#xff09;、面向对象编程&#xff08;OOP&#xff09;&#xff0c;本文详细介绍面向对象分析 本文参考教材&#xff1a;沈备军老师的《软件工程原理》大多图片来源其中 目录 面向对…

8.二维数组——将一个二维数组行和列的元素互换,存到另一个二维数组中。

文章目录 前言一、题目描述 二、题目分析 三、解题 程序运行代码 前言 本系列为二维数组编程题&#xff0c;点滴成长&#xff0c;一起逆袭。 一、题目描述 将一个二维数组行和列的元素互换&#xff0c;存到另一个二维数组中。 二、题目分析 三、解题 程序运行代码 #incl…

1980-2022年世界各国专利、商标申请数据/世界各国知识产权专利申请数据

1980-2022年世界各国专利、商标申请数据/世界各国知识产权专利申请数据 1、时间&#xff1a;1980-2022年 2、来源&#xff1a;WIPO数据库 3、范围&#xff1a;世界各国&#xff08;180多个国家&#xff09; 4、指标&#xff1a;国家名称、年份、代码、类型、专利申请总量、…

区块链存证:杭州互联网法院备选方案之一

文章目录 背景上报的存证系统设计备选方案***总体原则******分层架构******基础节点******存证链******存证业务******存证接入******通用功能******跨链对接架构***业务流程描述用户发起原创内容存证&#xff08;对应上图中左边1,2,3活动&#xff09;发现侵权行为&#xff0c;…

[设计模式] 常见的设计模式

文章目录 设计模式的 6 大设计原则设计模式的三大分类常见的设计模式有哪几种1. 单例模式&#xff1a;保证一个类仅有一个实例&#xff0c;并提供一个访问它的全局访问点。&#xff08;连接池&#xff09;1. 饿汉式2. 懒汉式3. 双重检测 2. 工厂模式3. 观察者模式● 推模型● 拉…