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

spring Aop使用示例

简介(aop作用):1.在不改变源代码的基础上进行功能添加,如日志打印、执行时间统计。2.与代理效果类似但更加便捷。

示例:

        maven依赖:

      <dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.20</version></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.9.7</version></dependency>
<!--        测试--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency>

        dao接口:

public interface UserDao {public void save();
}

        dao实现类:

@Component  //声明为组件
public class UserDaoIim  implements UserDao {@Overridepublic void save() {System.out.println("save");}
}

        spring配置类(@EnableAspectJAutoProxy):

@Configuration //定义为配置类
@ComponentScan("")//包扫描
@EnableAspectJAutoProxy //开启aop
public class SpringConfig {}

        通知类(核心):

@Aspect
@Component
public class MyAop {@Pointcut("execution(void com.dt.dao.UserDao.save())")//单的方法增强// @Pointcut("execution(void com.dt.dao.UserDao.*(参数))")//对所有方法增强,参数没有就不填public void pt(){}@Before("pt()")//对切点pt所代理的方法执行前增强public void  before(){System.out.println("执行前增强");}@After("pt()")//对切点pt所代理的方法执行后增强public void  after(){System.out.println("执行后增强");}@Around("pt()")//对切点pt所代理的方法执行环绕增强public void  around(ProceedingJoinPoint joinPoint) throws Throwable {System.out.println("around,执行前增强");joinPoint.proceed();System.out.println("around,执行后增强");}@AfterReturning("pt()")//对切点pt所代理的方法返回后通知public void  fterReturning()  {System.out.println("执行后返回增强");}@AfterThrowing("pt()")//对切点pt所代理的方法报错后通知public void  afterThrowing()  {System.out.println("执行报错后增强");}
}

        测试:

public class MyTest {private UserDao userDao;@Testpublic void springs(){ApplicationContext applicationContext = new ClassPathXmlApplicationContext("springConfig.xml");userDao = applicationContext.getBean(UserDao.class);userDao.save();}
}

相关文章:

spring Aop使用示例

简介&#xff08;aop作用&#xff09;&#xff1a;1.在不改变源代码的基础上进行功能添加&#xff0c;如日志打印、执行时间统计。2.与代理效果类似但更加便捷。 示例&#xff1a; maven依赖&#xff1a; <dependency><groupId>org.springframework</groupId&g…...

MySQL-InnoDB数据存储结构

1、存储结构-页 索引结构提供了高效的索引方式&#xff0c;索引信息以及数据记录都保存在数据文件或索引文件中&#xff08;本质存储在页结构中&#xff09; 1.1、磁盘与内存交互的基本单位&#xff1a;页 在InnoDB中将数据划分为若干页&#xff0c;页的默认大小为&#xff…...

【吊打面试官系列】Java高并发篇 - 什么是 Java Timer 类?如何创建一个有特定时间间隔的任务?

大家好&#xff0c;我是锋哥。今天分享关于 【什么是 Java Timer 类&#xff1f;如何创建一个有特定时间间隔的任务&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; 什么是 Java Timer 类&#xff1f;如何创建一个有特定时间间隔的任务&#xff1f; java.util.T…...

Spring生命周期深度解析

Spring生命周期深度解析 介绍 Spring是一个开源的Java框架&#xff0c;用于构建企业级应用程序。它提供了一种轻量级的、非侵入式的开发方式&#xff0c;使得开发者可以更加专注于业务逻辑的实现&#xff0c;而不必过多关注底层的技术细节。 在使用Spring框架开发应用程序时…...

基于 Windows 的记事本简单功能开发及部署发布--迭代2.0

基于上篇文章基于 Windows 的记事本简单功能开发-CSDN博客 更新完成以下几个功能点&#xff1a; 1.中心部件更改为栅格布局 2.另存为功能&#xff1a; 打开文本保存框,用户选中文件保存时 得到绝对路径。 判断用户选择路径不为空。 得到用户输入内容。 创建文件对象&…...

Java lambda

forEach 比 for 语句的线程安全要求更严格。 如此语句使用for语句可以&#xff0c;但是forEach却不可以。...

【智能算法】河马优化算法(HO)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献5.代码获取 1.背景 2024年&#xff0c;MH Amiri受到自然界河马社会行为启发&#xff0c;提出了河马优化算法&#xff08;Hippopotamus Optimization Algorithm, HO&#xff09;。 2.算法原理 2.1算法思想 …...

spring基础使用(案例)

基于xml使用&#xff1a; 准备&#xff1a; 1.Dao层&#xff08;接口&#xff09;&#xff1a; public interface UserDao {public void save(); } 1.1 Dao层&#xff08;实现类&#xff09;&#xff1a; public class UserDaoIim implements UserDao {Overridepublic vo…...

相同的树LeetCode

100. 相同的树 - 力扣&#xff08;LeetCode100. 相同的树 - 力扣&#xff08; 给你两棵二叉树的根节点 p 和 q &#xff0c;编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同&#xff0c;并且节点具有相同的值&#xff0c;则认为它们是相同的。 /*** Definition…...

Vue中如何抽取部分代码到单独的ts文件

Vue中如何抽取部分代码到单独的ts文件 本文代码基于 简单示例 这段代码&#xff0c;是比较通用的代码&#xff0c;我想抽取成一个ts文件&#xff0c;来供其他地方调用。 const groupData reactive({groupList:[] as Array<GroupV2Response>,current:{} as GroupV2Re…...

山东齐鲁文化名人颜廷利:朱郭有文才,曲高‘菏’寡星光路

山东齐鲁文化名人颜廷利教授表示&#xff0c;朱郭&#xff08;谐音‘祖国’&#xff09;有文才&#xff0c;《曲高‘菏’寡》星光路… 山东菏泽歌手朱之文在2011年凭借一首《滚滚长江东逝水》一夜成名&#xff0c; 十多年之后的今天&#xff0c;菏泽市网络红人郭有才靠一首《诺…...

嵌入式学习70-复习(wireshark使用和http协议)

知识零碎&#xff1a; ssize_t 头文件&#xff1a;<sys/types.h> 有符号整型 --------------------------------------------------------------------------------------------------------------------------------- wireshark 1.sudo wireshark 2.选择 any &…...

idea配置MySQL提示

点击sql语句&#xff0c;然后再选择show context actions 然后再选择Inject language or reference 然后再选择MySQL 然后我们会发现sql语句变颜色了 如果表是红色 那么需要我们连接mysql的对于的数据库...

如何利用AI生成答辩PPT?笔灵AI答辩PPT,智能识别关键点

很多快要毕业的同学在做答辩PPT的时候总是感觉毫无思路&#xff0c;一窍不通。但这并不是你们的错&#xff0c;对于平时没接触过相关方面&#xff0c;第一次搞答辩PPT的人来说&#xff0c;这是很正常的一件事。一个好的答辩PPT可以根据以下分为以下几部分来写。 1.研究的背景和…...

速盾:怎么设置cdn加速小程序图片?

小程序是一种基于微信平台的应用程序&#xff0c;为了提升小程序的用户体验&#xff0c;我们可以通过设置CDN&#xff08;内容分发网络&#xff09;来加速小程序中的图片加载速度。CDN是一种分布式服务&#xff0c;它将原始服务器的存储内容复制到在全球各地的缓存服务器&#…...

Android bootchart 分析启动性能工具使用

bootchart简介 bootchart 可为整个系统提供所有进程的 CPU 和 I/O 负载细分。该工具不需要重建系统映像&#xff0c;可以用作进入 systrace 之前的快速健全性检查。 1. 板端配置&#xff1a; 在Android 板端启用 bootchart&#xff0c;请运行以下命令&#xff1a; 2. Bootch…...

一键开启,盲盒小程序里的梦幻奇遇

在这个充满惊喜与未知的数字时代&#xff0c;盲盒小程序以其独特的魅力成为了许多人的新宠。只需一键开启&#xff0c;你就能踏入一个充满梦幻奇遇的世界&#xff0c;探索未知的惊喜与乐趣。 盲盒小程序不仅仅是一个简单的购物平台&#xff0c;它更是一个充满神秘与惊喜的宝藏库…...

如何进行并行执行的诊断与调优 —— 《OceanBase 并行执行》系列 6

在诊断并行执行问题时&#xff0c;我们可以从两个主要方面展开分析。首先&#xff0c;从整体系统层面进行考量&#xff0c;比如检查网络是否畅通、磁盘IO是否过载、CPU资源是否已用满&#xff1b;其次&#xff0c;针对具体的SQL语句进行深入剖析&#xff0c;定位问题SQL&#x…...

【Ubuntu系统hgfs共享文件夹不显示问题解决】

问题描述&#xff1a;为了实现本地物理机与虚拟机之间的文件传输&#xff0c;我们通常采用共享文件夹的方式。但是在Vmware虚拟机使用Ubuntu系统的过程中&#xff0c;由于某种特殊或意外原因&#xff0c;Ubuntu系统或发生/mnt/hgfs共享文件夹丢失不显示的问题。以下是本次问题发…...

C++的相关知识集

1、C概述 1 两大编程思想 c语言在c语言的基础上添加了面向对象编程和泛型编程的支持。c继承了c语言高效&#xff0c;简洁&#xff0c;快速和可移植的传统。 2 起源 与c语言一样&#xff0c;c也是在贝尔实验室诞生的&#xff0c;Bjarne Stroustrup(本贾尼斯特劳斯特卢普)在2…...

VS2022下载与全面使用指南

Visual Studio 2022&#xff08;简称VS2022&#xff09;是微软推出的最新一代集成开发环境&#xff08;IDE&#xff09;&#xff0c;于2021年11月正式发布&#xff0c;相比上一代VS2019&#xff0c;在性能优化、功能迭代、兼容性提升等方面实现了全方位升级&#xff0c;被誉为“…...

Firmament (FMT):以模型驱动重塑开源飞控开发范式

1. 为什么我们需要重新思考飞控开发方式 第一次接触无人机飞控开发的朋友&#xff0c;往往会被复杂的代码和调试过程吓到。传统开发模式下&#xff0c;开发者需要手动编写大量C/C代码来实现控制算法&#xff0c;调试时又得反复烧录固件、实地试飞。我见过不少团队花费80%时间在…...

蔚蓝档案鼠标指针主题:3分钟为Windows桌面注入动漫灵魂的完整指南

蔚蓝档案鼠标指针主题&#xff1a;3分钟为Windows桌面注入动漫灵魂的完整指南 【免费下载链接】BlueArchive-Cursors Custom mouse cursor theme based on the school RPG Blue Archive. 项目地址: https://gitcode.com/gh_mirrors/bl/BlueArchive-Cursors 厌倦了Window…...

技术赋能旧设备:OpenCore Legacy Patcher让Mac重获新生

技术赋能旧设备&#xff1a;OpenCore Legacy Patcher让Mac重获新生 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 当您的Mac设备被苹果官方系统升级列表排除…...

3步打造零成本游戏手柄解决方案 - 用Joy-Con模拟Xbox控制器的高效实践

3步打造零成本游戏手柄解决方案 - 用Joy-Con模拟Xbox控制器的高效实践 【免费下载链接】XJoy 项目地址: https://gitcode.com/gh_mirrors/xjo/XJoy 场景化问题&#xff1a;当你的游戏缺少合适手柄时 你是否遇到过这种情况&#xff1a;想在PC上畅玩3A大作&#xff0c;却…...

GoWorld网络协议详解:TCP、KCP与WebSocket的多协议支持实现

GoWorld网络协议详解&#xff1a;TCP、KCP与WebSocket的多协议支持实现 【免费下载链接】goworld Scalable Distributed Game Server Engine with Hot Swapping in Golang 项目地址: https://gitcode.com/gh_mirrors/go/goworld GoWorld是一个用Go语言开发的可扩展分布式…...

从TMC2209升级到TMC2240值不值?实测对比静音/能耗/温控三大核心指标

TMC2240 vs TMC2209&#xff1a;实测数据揭示三大升级价值 当3D打印机和自动化设备的噪音开始干扰工作环境&#xff0c;当电机驱动芯片的发热问题频繁触发保护机制&#xff0c;许多工程师都在思考同一个问题&#xff1a;从成熟的TMC2209升级到新一代TMC2240是否值得&#xff1f…...

Photoshop图层批量导出提速指南:高效智能自动化工作流解决方案

Photoshop图层批量导出提速指南&#xff1a;高效智能自动化工作流解决方案 【免费下载链接】Photoshop-Export-Layers-to-Files-Fast This script allows you to export your layers as individual files at a speed much faster than the built-in script from Adobe. 项目地…...

TiMem实战:构建有长期记忆的AI 学习助手,自动追踪薄弱点和学习进度

TiMem 实战&#xff1a;构建有长期记忆的 AI 学习助手&#xff0c;自动追踪薄弱点和学习进度 一、现有 AI 学习助手的结构性缺陷 当前市面上的 AI 学习工具&#xff08;无论是 ChatGPT、Claude 还是各类 AI 教育产品&#xff09;都有一个共同缺陷&#xff1a;无状态。每次会话结…...

3分钟掌握:高效全能资源下载工具res-downloader实战指南

3分钟掌握&#xff1a;高效全能资源下载工具res-downloader实战指南 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 你是否曾…...