Spring中的Aop简单实例讲解

  • 注重版权,转载请注明原作者和原文链接
    作者:码农BookSea
    原文链接:https://editor.csdn.net/md?articleId=107092569
    在这里插入图片描述

Aop,即面向切面编程,面向切面编程的目标就是分离关注点
比如:一个骑士只需要关注守护安全,或者远征,而骑士辉煌一生的事迹由谁来记录和歌颂呢,当然不会是自己了,这个完全可以由诗人去歌颂,比如当骑士出征的时候诗人可以去欢送,当骑士英勇牺牲的时候,诗人可以写诗歌颂骑士的一生。那么骑士只需要关注怎么打仗就好了。而诗人也只需要关注写诗歌颂和欢送就好了,那么这样就把功能分离了。所以可以把诗人当成一个切面,当骑士出征的前后诗人分别负责欢送和写诗歌颂(记录)。而且,这个切面可以对多个骑士或者明人使用,并不只局限于一个骑士。
这样,既分离了关注点,也减低了代码的复杂程度。

代码示例如下:

骑士类:

package com.cjh.aop2;/*** @author Caijh** 2017年7月11日 下午3:53:19*/
public class BraveKnight {public void saying(){System.out.println("我是骑士");}
}

诗人类:

package com.cjh.aop2;/*** @author Caijh** 2017年7月11日 下午3:47:04*/
public class Minstrel {public void beforSay(){System.out.println("前置通知");}public void afterSay(){System.out.println("后置通知");}
}

spring配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd"><!-- 目标对象 --><bean id="knight" class="com.cjh.aop2.BraveKnight"/><!-- 切面bean --><bean id="mistrel" class="com.cjh.aop2.Minstrel"/><!-- 面向切面编程 --><aop:config><aop:aspect ref="mistrel"><!-- 定义切点 --><aop:pointcut expression="execution(* *.saying(..))" id="embark"/><!-- 声明前置通知 (在切点方法被执行前调用)--><aop:before method="beforSay" pointcut-ref="embark"/><!-- 声明后置通知 (在切点方法被执行后调用)--><aop:after method="afterSay" pointcut-ref="embark"/></aop:aspect></aop:config>
</beans>

测试代码:

package com.cjh.aop2;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;/*** @author Caijh** 2017年7月11日 下午4:02:04*/
public class Test {public static void main(String[] args) {ApplicationContext ac = new ClassPathXmlApplicationContext("com/cjh/aop2/beans.xml");BraveKnight br = (BraveKnight) ac.getBean("knight");br.saying();}
}

执行结果如下:

前置通知
我是骑士
后置通知

=====================================================

aop(面向切面编程)的好处就是,当执行了我们主要关注的行为(骑士类对象),也就是切点,那么切面(诗人对象)就会自动为我们进行服务,无需过多关注。如上测试代码,我们只调用了BraveKnight类的saying()方法,它就自己在saying方法前执行了前置通知方法,在执行完saying之后就自动执行后置通知。通过这样我们可以做权限设置和日志处理。

补充:pointcut执行方法书写格式如下:
在这里插入图片描述
工程目录结构:
在这里插入图片描述
如果运行过程中出现nofoundclass的错误,一般是少了:aspectjweaver.jar这个包,需要下载

以上这篇基于spring中的aop简单实例讲解,这就是今天跟大家分享的内容

老铁,如果有收获,请点个免费的赞鼓励一下博主

白嫖不好,创作不易。各位的点赞就是我创作的最大动力,如果我有哪里写的不对,欢迎评论区留言进行指正,我们下篇文章见!

在这里插入图片描述

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

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

相关文章

七夕我们在歌颂什么

“七夕节”是我国最具有浪漫色彩的节日&#xff0c;也是古代少女、闺妇最看重的节日。因主要的参与者是少女&#xff0c;活动以乞巧为主&#xff0c;也被称为“乞巧节”或“少女节”、“女儿节”。 农历七月初七&#xff0c;正值夏秋&#xff0c;晴朗夜空&#xff0c;明亮的牵牛…

细微之处见真章之JSON格式美化

一、背景 今天 段段 在技术群里提出一个问题&#xff1a;”如何实现JSON的格式美化“。 具体含义是&#xff0c;通过后端代码实现将紧凑的JSON字符串变为更美观的形式。 如下面的JSON字符串 {\"age\":0,\"name\":\"张三\",\"sex\":…

应对互联网变局,这 8 件事必须要做。

阅读本文大概需要 1.8 分钟。 昨晚直播说了挺多&#xff0c;整体都是跟互联网相关&#xff0c;也提到整体环境&#xff0c;有不少人失去工作后不知所措&#xff0c;也有不少人说创业的合规成本太高应该怎么做&#xff1f;更有不少在职场的人表示大家太卷又该怎么应对等等。 上述…

我让ChatGPT用CSS3画一个皮卡丘,还是自己画的可爱

突然想到了小时候看过的动画片《皮卡丘》&#xff0c;于是突然就想&#xff0c;ChatGPT肯定也看过&#xff0c;他哪有不知道的东西啊&#xff0c;于是就想着让他帮我画一个&#xff0c;他画出来之后&#xff0c;我笑了&#xff0c;这啥玩意儿啊。 目录 一、第一次尝试让ChatGP…

总是后来居上,我曾经的偶像公司又火了 !

1 有一家IT公司&#xff0c;在它成立40多年的历史上&#xff0c;非常幸运&#xff0c;非常罕见地踏中了三次浪潮。 这三次浪潮分别是PC、云计算和AI。 尤其是后两次&#xff0c;在十年的时间内连续踏上&#xff0c;实在是牛。 没错&#xff0c;这家公司就是微软。 PC时代&#…

Python速查表;腾讯大佬的AIGC设计应用汇总;这个世界需要10亿开发者;67个最常用AI工具清单 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f916; 『一份必收藏的 Python 3 速查表』可运行代码中文注释 随着AIGC浪潮的兴起&#xff0c;越来越多小伙伴尝试着使用 GPT 类工具开发小程…

ChromeBox 推出 | 历史上的今天

整理 | 王启隆 透过「历史上的今天」&#xff0c;从过去看未来&#xff0c;从现在亦可以改变未来。 今天是 2023 年 5 月 29 日&#xff0c;在 1985 年的今天&#xff0c;伊士曼柯达公司推出了一种名为 Ektaprint 电子出版系统的电子出版系统&#xff0c;旨在允许公司编辑、打印…

“28 年后,Windows 终于原生支持了 RAR 文件!”

整理 | 屠敏 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 即将彻底告别那些第三方存档应用程序。 今天凌晨&#xff0c;微软在西雅图举办了一场关于 AI 的“小春晚”——Build 2023 大会。在大会上&#xff0c;除了宣布的 Bing 将引入 ChatGPT 成为默认搜索体验…

【GPT-4】HuggingFace万字访谈:OpenAI不足为惧,每个公司都会有自己的GPT-4

日前,Hugging Face 创始人 Clem Delangue 参与了一场访谈,过程中谈到了以下几个关键问题: Hugging Face 的创始故事 大模型 AI 未来会如何迭代? 大公司闭源会对开源社区产生影响吗? 驱动大模型进步的核心是什么? 通用大模型和专用小模型有优劣之分吗? 现阶段如何进行更具…

AIGC新时代,注意政策走向,产业方向,拥抱可信AI。需要了解基本理论,基础模型,前沿进展,产品应用,以及小小的项目复现

AIGC&#xff08;AI-Generated Content&#xff0c;AI生成内容&#xff09;是指基于生成对抗网络&#xff08;GAN&#xff09;、大型预训练模型等人工智能技术的方法&#xff0c;通过对已有数据进行学习和模式识别&#xff0c;以适当的泛化能力生成相关内容的技术。类似的概念还…

a16z最新预判——AI虚拟陪伴生态全解析!

导语 “AI的魔力在于它的不断演变。有一天&#xff0c;它会比真实的“女朋友”更出色。未来某一天&#xff0c;选择真实的伴侣反而会成为第二优先级的选择。” 这是来自CarynAI社区的一位早期用户&#xff0c;在这个社区中已经有超过20,000人了。这个社区的用户们每分钟支付1美…

A16Z:AI Companion的趋势洞察

[ AI技术在人际交往中的应用是否会对人类关系产生负面影响&#xff1f; ] shadow 我想发起一场实验&#xff1a;你愿意参与这一场全程由AI主导的社交游戏吗&#xff1f;你只需要接受or拒接AI给你的任务。 听起来就很有意思 # # 预约参加 …… opus 今天推荐的是A16Z的一篇文章&…

第一批用ChatGPT坐牢的人,都玩的是哪些套路?

通过GPT在短时间内生成完整诈骗话术&#xff0c;套路啊套路 “虚拟角色”可以虚拟客服&#xff0c;还可以虚拟恋人玩杀猪盘 让受害人以为自己“坠入爱河” 套路还是从前的套路 但骗子用上了新的工具 又换上了很多马甲 防不胜防 你以为OpenAI不知道骗子会用这个工具来做坏…

我用GPT搭建了一个虚拟女友!

Datawhale干货 作者&#xff1a;仲泰&#xff0c;Datawhale成员 1. 作者知乎&#xff1a;https://www.zhihu.com/people/yong-tan-39-67 2.我用GPT搭建了一个虚拟女友-哔哩哔哩&#xff1a;https://b23.tv/GYYwMcq 3. 五月学习&#xff1a;ChatGPT应用组队学习来了&#xff01…

人人都可拥有的自主性AI:有记忆会使用工具,还会自我学习!底层自研框架即将开源...

明敏 发自 凹非寺量子位 | 公众号 QbitAI 要说AutoGPT为啥会迅速蹿红&#xff1f; 还不是把人类对AI的想象力再次打开了。 使唤AI不用再一句句引导&#xff0c;更不用去研究提示工程了。 人人像钢铁侠那样拥有超级AI贾维斯不是梦。 而就在现在&#xff0c;这种Auto AI Copilot已…

被颠覆、被捅刀、被群嘲:谷歌还能打赢这场AI之战吗?

去年12月&#xff0c;AI聊天机器人ChatGPT3.5对外发布几周后&#xff0c;谷歌就意识到了危险&#xff0c;CEO桑达尔皮查伊&#xff08;Sundar Pichai&#xff09;对内发出了“红色警报”&#xff08;CodeRed&#xff09;。 这是一场噩梦的开始。 过去4个月&#xff0c;皮…

深度剖析ja3指纹及突破

声明 以下只是搬运下我公众号的东西。很早就发过了。原帖地址&#xff1a; 深度剖析ja3指纹及突破 (qq.com) 已经发公众号的为什么还发csdn 有的圈内朋友&#xff0c;不经过我的允许&#xff0c;删减摘录我公众号的内容&#xff0c;这里就不提谁了&#xff0c;心里清楚&#x…

《Linux是怎样工作的》读书笔记

目录 前言Chapter 1 计算机系统概要1.1 计算机的硬件1.2 OS1.3 用户模式和内核模式1.4内核 Chapter 2 用户模式实现的功能2.1系统调用2.2系统调用的包装函数2.3 OS提供的程序 Chapter 3 进程管理3.1进程与线程进程线程进程和线程的区别 3.2 fork3.3 execve3.4 结束进程 Chapter…

用 Real-ESRGAN 拯救座机画质,自制高清版动漫资源

本文约1200字&#xff0c;建议阅读8分钟Real-ESRGAN 是 ESRGAN 升级之作&#xff0c;主要有三点创新&#xff1a;提出高阶退化过程模拟实际图像退化&#xff0c;使用光谱归一化 U-Net 鉴别器增加鉴别器的能力&#xff0c;以及使用纯合成数据进行训练。 相比于如今画面优良精美的…

Git学习

安装Git 可参考&#xff1a;https://blog.csdn.net/mukes/article/details/115693833?ops_request_misc%257B%2522request%255Fid%2522%253A%2522168121346716800192220040%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id16812134671680019…