首页/新闻资讯/正文详情

Spring AOP—基于注解的AOP实现

发布时间:2026/9/27 9:32:12 来源:云帆数科 栏目:资讯中心
Spring AOP—基于注解的AOP实现
本文工具IDEA2020.1maven3.6.3本文源代码如下1百度网盘通过网盘分享的文件Spring AOP—基于注解的AOP实现.zip链接: https://pan.baidu.com/s/1SoXPzI__RafafuOCMegD_Q?pwd4smh 提取码: 4smh2夸克网盘我用夸克网盘给你分享了「Spring AOP—基于注解的AOP实现.zip」点击链接或复制整段内容打开「夸克APP」即可获取。/52503b6fC6链接https://pan.quark.cn/s/8234781ccb7a?pwdxRsm提取码xRsm一、注解说明二、创建maven项目打开IDEA点击“File—New—Project”我们 选择“Maven”项目然后点击“Next”改一下项目名称然后点击“Finish”看这里就命名为chapter08三、引入依赖打开项目的pom.xml文件引入依赖后整个pom文件参考如下?xml version1.0 encodingUTF-8?projectxmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdorg.example/groupIdartifactIdchapter08/artifactIdversion1.0-SNAPSHOT/versiondependencies!-- spring-core的依赖包 --dependencygroupIdorg.springframework/groupIdartifactIdspring-core/artifactIdversion5.2.8.RELEASE/version/dependency!-- spring-beans的依赖包 --dependencygroupIdorg.springframework/groupIdartifactIdspring-beans/artifactIdversion5.2.8.RELEASE/version/dependency!-- spring-context的依赖包 --dependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion5.2.8.RELEASE/version/dependency!-- spring-expression的依赖包 --dependencygroupIdorg.springframework/groupIdartifactIdspring-expression/artifactIdversion5.2.8.RELEASE/version/dependency!-- commons-logging的依赖包 --dependencygroupIdcommons-logging/groupIdartifactIdcommons-logging/artifactIdversion1.2/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-aop/artifactIdversion5.2.8.RELEASE/version/dependency!-- aspectjrt包的依赖 --dependencygroupIdorg.aspectj/groupIdartifactIdaspectjrt/artifactIdversion1.9.1/version/dependency!-- aspectjweaver包的依赖 --dependencygroupIdorg.aspectj/groupIdartifactIdaspectjweaver/artifactIdversion1.9.6/version/dependency/dependencies/project注如果依赖爆红请仔细检查maven配置。注如果依赖爆红请仔细检查maven配置。四、创建Dao层和Impl层我们右击 java文件夹选择New—package文件夹的名字就叫demo4右击刚刚创建的demo4文件夹选择New—Java Class这个接口名称为 UserDao类型选择Interface那么UserDao的代码参考如下packagedemo3;publicinterfaceUserDao{publicvoidinsert();publicvoiddelete();publicvoidupdate();publicvoidselect();}继续创建UserDao的实现层右击demo3选择New——Java Class名称叫UserDaoImpl代码参考如下packagedemo3;publicclassUserDaoImplimplementsUserDao{publicvoidinsert(){System.out.println(添加用户信息);}publicvoiddelete(){System.out.println(删除用户信息);}publicvoidupdate(){System.out.println(更新用户信息);}publicvoidselect(){System.out.println(查询用户信息);}}五、创建切面类在demo4文件夹下继续创建一个切面类名称为AnnoAdvice代码参考如下packagedemo4;importorg.aspectj.lang.JoinPoint;importorg.aspectj.lang.ProceedingJoinPoint;importorg.aspectj.lang.annotation.*;AspectpublicclassAnnoAdvice{//切点Pointcut(execution( * demo4.UserDaoImpl.*(..)))publicvoidpoincut(){}//前置通知Before(poincut())publicvoidbefore(JoinPointjoinPoint){System.out.print(这是前置通知);System.out.print(目标类是joinPoint.getTarget());System.out.println(,被织入增强处理的目标方法为joinPoint.getSignature().getName());}//返回通知AfterReturning(poincut())publicvoidafterReturning(JoinPointjoinPoint){System.out.print(这是返回通知!);System.out.println(被织入增强处理的目标方法为joinPoint.getSignature().getName());}//环绕通知Around(poincut())publicObjectaround(ProceedingJoinPointpoint)throwsThrowable{System.out.println(这是环绕通知之前的部分);//调用目标方法Objectobjectpoint.proceed();System.out.println(这是环绕通知之后的部分);returnobject;}//异常通知AfterThrowing(poincut())publicvoidafterException(){System.out.println(异常通知);}//后置通知After(poincut())publicvoidafter(){System.out.println(这是后置通知);}}六、编写配置文件右击 resources文件夹选择New—File文件名称为applicationContext-Anno.xml代码参考如下?xml version1.0 encodingUTF-8?beansxmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:aophttp://www.springframework.org/schema/aopxsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd!-- 注册Bean --beannameuserDaoclassdemo4.UserDaoImpl/beannameAnnoAdviceclassdemo4.AnnoAdvice/!-- 开启aspectj的自动代理支持 --aop:aspectj-autoproxy//beans七、编写测试类继续右击demo4选择New—Java Class类名为TestAnnotation代码参考如下packagedemo4;importorg.springframework.context.ApplicationContext;importorg.springframework.context.support.ClassPathXmlApplicationContext;publicclassTestAnnotation{publicstaticvoidmain(String[]args){ApplicationContextcontextnewClassPathXmlApplicationContext(applicationContext-Anno.xml);UserDaouserDaocontext.getBean(userDao,UserDao.class);userDao.delete();System.out.println();userDao.insert();System.out.println();userDao.select();System.out.println();userDao.update();}}九、测试效果运行测试类执行效果如下

相关推荐

本地大模型硬件真相:从 MoE、CPU/GPU/NPU 到 32GB Mac mini 实战调优
本地大模型硬件真相:从 MoE、CPU/GPU/NPU 到 32GB Mac mini 实战调优

用 CPU 跑大模型的人,几乎都会经历一种奇妙的“冰火两重天”: 当你用一台 8 核 CPU 跑混合专家模型(MoE,例如总参数 30B、单字激活约 3B 的 Qwen3-30B-A3B,Q4 量化约 18GB)时,一旦模型开始生成回… · 2026/9/27 9:32:06

福寿社区夕阳红网站-计算机毕业设计源码+LW文档
福寿社区夕阳红网站-计算机毕业设计源码+LW文档

研究的意义与领域研究的简况:在老龄化社会加速到来与数字化浪潮深度融合的当下,社区养老服务的信息化、智能化转型迫在眉睫。福寿社区作为典型的老年群体集中居住区域,其传统养老服务模式在信息传递、服务对接和资源整合等方面存在明显短板&a… · 2026/9/27 9:32:06

告别命令行:Kimodo交互式时间轴Demo详解,拖拽关键帧创作3D动作
告别命令行:Kimodo交互式时间轴Demo详解,拖拽关键帧创作3D动作

告别命令行:Kimodo交互式时间轴Demo详解,拖拽关键帧创作3D动作 【免费下载链接】kimodo Official implementation of Kimodo, a kinematic motion diffusion model for high-quality human(oid) motion generation. 项目地址: https://gitcode.com/gh_… · 2026/9/27 9:32:00

《Docker 镜像、容器、仓库一张图讲清楚》
《Docker 镜像、容器、仓库一张图讲清楚》

Docker 镜像、容器、仓库一张图讲清楚 很多初学者刚接触 Docker 时,会被三个词绕晕:镜像(Image)、容器(Container)、仓库(Registry/Repository)。 它们看起来都和“装东西”有关&… · 2026/9/27 10:19:35

【3D Max】保姆级教程:3D Max 2026 版详细图文安装指
【3D Max】保姆级教程:3D Max 2026 版详细图文安装指

软件概述 Autodesk 3ds Max 是业界领先的三维建模、动画和渲染解决方案,广泛应用于建筑可视化、游戏开发、影视特效及产品设计等领域。2026版本在原有功能基础上进行了多项优化,为专业设计师提供更高效的工作流程 核心功能特性 建模系统 多边形建模&a… · 2026/9/27 10:19:29

3步搞定dw怎么做网站布局,兼顾性能优化不踩坑
3步搞定dw怎么做网站布局,兼顾性能优化不踩坑

3步搞定dw怎么做网站布局,兼顾性能优化不踩坑 找建站公司怕被坑高价,最后发现对方连基础布局都没搞对?别慌,今天把dw怎么做网站布局掰开揉碎讲清楚。很多项目经理都踩过这个坑:外包团队收钱时信誓旦旦,交付时却是个“四不像”——桌面端看着还行,… · 2026/9/27 10:19:23

树莓派Python版本管理:安全卸载指定版本与多环境共存指南
树莓派Python版本管理:安全卸载指定版本与多环境共存指南

1. 为什么要在树莓派上折腾Python版本管理树莓派这玩意儿,玩过的人都知道,系统里预装的Python版本往往不是我们想要的那个。你拿到一块全新的树莓派4B或者树莓派5,刷上官方Raspberry Pi OS,打开终端敲python3 --version&#xff0… · 2026/9/27 10:19:23

Frontpage做的网站好不好独立站长速查手册
Frontpage做的网站好不好独立站长速查手册

Frontpage做的网站好不好独立站长速查手册 做站十年,见过太多人拿着Frontpage做的模板站来问:这站到底能不能用?我的回答很直接—— 模板网站太丑不够用… · 2026/9/27 10:19:17

FontForge 合成字攻略:用 Build Accented/Composite 一键搭建带音调符字符与复杂连字
FontForge 合成字攻略:用 Build Accented/Composite 一键搭建带音调符字符与复杂连字

桌面应用图形学 【免费下载链接】fontforge Free (libre) font editor for Windows, Mac OS X and GNULinux 项目地址: https://gitcode.com/gh_mirrors/fo/fontforge 点击查看 免费下载 FontForge 是一款面向 Windows、macOS 与 GNULinux 的开源字体编辑器。在制作… · 2026/9/27 10:19:11

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码