新闻详情

新闻详情

首页 / 资讯中心 / 详情

Spring AOP—基于注解的AOP实现

发布时间:2026/9/27 9:32:14来源:尧图网络
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();}}九、测试效果运行测试类执行效果如下
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

《AI Engineering》10章砍到5章:一周能上线一个RAG应用的AI工程精读路线 2026/9/27 10:25:26

《AI Engineering》10章砍到5章:一周能上线一个RAG应用的AI工程精读路线

《AI Engineering》10章砍到5章:一周能上线一个RAG应用的AI工程精读路线 【免费下载链接】aie-book [WIP] Resources for AI engineers. Also contains supporting materials for the book AI Engineering (Chip Huyen, 2025) 项目地址: https://gitcode.com/GitH…

阅读更多 →
STM32F103为何是嵌入式入门首选芯片 2026/9/27 10:25:19

STM32F103为何是嵌入式入门首选芯片

1. 这块蓝色小板子,到底凭什么成了嵌入式入门者的“第一块砖”如果你在电子实验室、开源硬件社区或者单片机学习群聊里听到“STM32F103”这串字符,大概率会看到有人指着一块蓝绿色PCB板说:“喏,就它——我第一个能跑起来的ARM。”…

阅读更多 →
Midway Agent 知识层数据契约:基于 @midwayjs/skill-midway 的官方知识快照与查询体系 2026/9/27 10:25:19

Midway Agent 知识层数据契约:基于 @midwayjs/skill-midway 的官方知识快照与查询体系

后端微服务云原生 【免费下载链接】midway 🍔 A Node.js Serverless Framework for front-end/full-stack developers. Build the application for next decade. Works on AWS, Alibaba Cloud, Tencent Cloud and traditional VM/Container. Super easy integrate w…

阅读更多 →
C语言printf输出函数详解:基本框架与格式控制串 2026/9/27 10:24:45

C语言printf输出函数详解:基本框架与格式控制串

前言 printf 是 C 语言中最基础、最常用的输出函数,几乎每一段 C 语言代码都会用到它。本文将从 printf 的基本框架入手,深入讲解格式控制串的组成与用法,帮助读者彻底掌握这一核心函数。一、printf 函数的基本框架 printf 函数的原型定义在 …

阅读更多 →
PyTorch W-GAN光伏出力场景生成程序|配套光伏数据集 2026/9/27 10:24:45

PyTorch W-GAN光伏出力场景生成程序|配套光伏数据集

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、算法改进、程序设计科研仿真。🍎 往期回顾关注个人主页:完整代码获取 定制创新 论文复现私信🍊个人信条:做科研&#xff0c…

阅读更多 →
南京招网站开发避坑指南:3个实战案例教你搞定域名备案 2026/9/27 10:24:38

南京招网站开发避坑指南:3个实战案例教你搞定域名备案

南京招网站开发避坑指南:3个实战案例教你搞定域名备案 网站上线了,后台数据一片空白,这是很多老板最头疼的事。在南京招网站开发,光看代码漂亮没用,得看流量能不能进得来。我见过太多南京的中小企业,花大价钱做了个响应式官网,结果因为DNS没配对、…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉