注解方式的AspectJ实现方式

BookService类
package com.hkd.service;public interface BookService {public void buyJava();public int comment();void buy();
}
BookServiceImp类
package com.hkd.service;import org.springframework.stereotype.Component;@Component("bs")
public class BookServiceImp implements BookService{@Overridepublic void buyJava() {System.out.println("买Java书");}@Overridepublic int comment() {System.out.println("========书评");return 1;}@Overridepublic void buy() {System.out.println("=======买书");}
}

MyAdvice类

package com.hkd.tzhs;import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;
import org.aspectj.lang.ProceedingJoinPoint;
@Aspect
@Component
public class MyAdvice {@Pointcut("execution(* com.hkd.service.BookServiceImp.*(..))")public  void mypointCut(){}@Pointcut("mypointCut()")public void mybefore(){System.out.println("前置");}@Pointcut("mypointCut()")public void myafter(){System.out.println("出现异常执行的后置");}@Pointcut("mypointCut()")public void myaftering(){System.out.println("出现异常不执行的后置");}@Pointcut("mypointCut()")public Object myarround(ProceedingJoinPoint p) throws Throwable {System.out.println("执行环绕");System.out.println("环绕前置");Object obj=p.proceed();System.out.println("环绕后置");return obj;}}

spring.xml

<?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"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop https://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd">
<context:component-scan base-package="com.hkd.service"/><context:component-scan base-package="com.hkd.tzhs"/><aop:aspectj-autoproxy/>
</beans>

测试类

import com.hkd.service.BookService;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class Test {@org.junit.Testpublic void testAspect(){BeanFactory beanFactory=new ClassPathXmlApplicationContext("spring.xml");BookService bookService= (BookService) beanFactory.getBean("bs");bookService.buyJava();bookService.buy();bookService.comment();}
}

目录

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

侦查与监测类吊舱应用场景!

一、军事领域 侦察与监视&#xff1a; 侦查与监测类吊舱能够全天候、全气候地提供高清图像数据&#xff0c;支持军事侦察和监视任务。 通过可见光相机和红外热成像仪的结合&#xff0c;吊舱可以在白天和夜晚、晴天和恶劣天气条件下&#xff0c;为无人机等空中平台提供清晰的…

(ICLR-2022)LoRA:大型语言模型的低秩自适应

LoRA&#xff1a;大型语言模型的低秩自适应 Paper是Microsoft Corporation发表在ICLR 2022的工作 Paper Title&#xff1a;LoRA: Low-Rank Adaptation of Large Language Models Code &#xff1a;地址 Abstract 自然语言处理的主导范式包括对通用领域数据进行大规模预训练&am…

linux上修改容器网卡docker0为固定ip

修改容器为固定ip段。 1.在一次项目中发现创建的容器网段跟办公室网段有冲突的&#xff0c;导致连接不上。修改容器ip为固定ip 这是默认启动docker自动创建的。172网段 2.修改前先停用运行容器 3.在配置路径下修改vim /etc/docker/daemon.json 4.重启docker systemctl re…

群硕融合医疗器械:打造智能治疗设备管理平台,全程护航精准手术

治疗成功率更高&#xff0c;患者更信任。 科技革命在医疗领域开花 在珠海航展上&#xff0c;一群灵活穿梭于复杂地形的机器狗吸引了人们的目光&#xff0c;它们仿佛是从科幻电影中走出的“未来战士”&#xff0c;展现了科技应用的无限潜力。 与此同时&#xff0c;医疗领域同…

成都栩熙酷网络科技抖音电商为您打造无忧购物体验

在这个信息爆炸的时代&#xff0c;电子商务的便捷性让越来越多的人选择在线购物。作为一家深耕西南地区的创新型科技企业&#xff0c;成都栩熙酷网络科技有限公司&#xff08;以下简称“栩熙酷”&#xff09;始终将用户的安全与满意度置于首位&#xff0c;致力于通过先进的技术…

细节之处见真章:移门缓冲支架的功能之美

细节之处见真章&#xff0c;这句话在移门缓冲支架的设计与应用中得到了完美的诠释。移门缓冲支架不仅仅是一个简单的五金件&#xff0c;它通过一系列精心设计的功能&#xff0c;确保了移门关闭过程中的平稳和安静&#xff0c;同时为家居环境增添了实用和美学价值。下面我们将深…

Hive 中 IP 字典的应用:让你的数据分析更加精准

​ 大家好&#xff01;时隔一年&#xff0c;再次更新帖子&#xff0c;今天我们来探讨一个在大数据分析中非常实用的功能&#xff1a;在 Hive 中将连续的 IP 地址合并为一整条数据&#xff0c;作为字典使用。这项技术可以帮助我们减少数据量&#xff0c;提高数据处理效率&#x…

LCR 023. 相交链表

一.题目&#xff1a; LCR 023. 相交链表 - 力扣&#xff08;LeetCode&#xff09; 二.我的原始解法-无&#xff1a; 三.其他人的正确及好的解法&#xff0c;力扣解法参考&#xff1a; 哈希表法及双指针法&#xff1a;LCR 023. 相交链表 - 力扣&#xff08;LeetCode&#xff0…

【spring cache】自定义redis缓存管理器自控key过期时间

目录 说明实现思路实现步骤创建项目添加依赖创建自定义缓存管理器定义redis配置redis 缓存值格式序列化redis 操作方法&#xff08;可省略&#xff09;使用 spring cache 缓存注解Cacheable说明参数value 或者 cacheNames描述类型示例 key描述类型示例 keyGenerator描述类型示例…

Linux相关概念和易错知识点(23)(进程间通信、匿名管道、进程池)

目录 1.进程间通信&#xff08;IPC&#xff09; &#xff08;1&#xff09;为什么要有进程间通信&#xff1f; &#xff08;2&#xff09;通信的前提 &#xff08;3&#xff09;通信分类 2.匿名管道 &#xff08;1&#xff09;管道使用及现象 &#xff08;2&#xff09;匿…

D745 php+mysql+电影网站 在线视频播放网站 源码 配置 文档 全套资料

电影网站 1.项目描述2.开发背景与意义3.项目功能4.界面展示5.源码获取 1.项目描述 摘要 21世纪是信息的时代&#xff0c;随着信息技术与网络技术的发展&#xff0c;其已经渗透到人们日常生活的方方面面&#xff0c;与人们是日常生活已经建立密不可分的联系。电影网站是电影业发…

JAVA |日常开发中JSTL标签库详解

JAVA &#xff5c;日常开发中JSTL标签库详解 前言一、JSTL 概述1.1 定义1.2 优势 二、JSTL 核心标签库2.1 导入 JSTL 库2.2 <c:out>标签 - 输出数据2.3 <c:if>标签 - 条件判断2.4 <c:choose>、<c:when>和<c:otherwise>标签 - 多条件选择 结束语优…

开闭原则与访问修饰符 中 的线程安全问题

开闭原则 对外扩展开放&#xff0c;对修改关闭 看下面一段代码 当我们一个类 中公共的方法本来是线程安全的&#xff0c; 被子类重写之后改变了逻辑&#xff0c;并且有新的线程去运行&#xff0c;这时候 就不是 线程安全的了 运行结果如下 而我们使用 private修饰方法3&#…

使用uniapp开发小程序场景:在百度地图上调用接口返回的设备相关信息并展示

首先在百度地图开发者平台注册微信小程序开发密钥下载百度地图SDK-bmap-wx.min.js,下载地址在项目入口index.html页面进行引入页面中进行调用&#xff0c;代码示例如下<map id"map" longitude"108.95" latitude"34.34" scale"3" :m…

Java版-速通图的表示法--链式前向星

图实例 链式前向星最终的输出结果: 以某个点,例如,上图中1点开始,然后找1为开头的边,输出终点和权重; 添加边演示 如上图,以点的个数为基准建立head,数组,用来动态标记,以i为顶点的上一条边的index值;head数组里面的值是随着边的添加变化的,存着上一次以i为开头的…

基于51单片机的智能公交车报站系统GPS定位语音播报智能安全检测人数统计

功能描述 1.LCD12864可显示当前年月日&#xff0c;星期&#xff0c;时间&#xff0c; 当前站名&#xff0c;经纬度&#xff0c;是否连接GPS&#xff0c;自动/手动模式&#xff0c; 2.自带GPS定位&#xff0c;可实时显示经纬度&#xff1b; 3.通过DS1302时钟芯片&#xff0c;获…

MySQL 性能优化详解

MySQL 性能优化详解 硬件升级系统配置优化调整buffer_pool数据预热降低日志的磁盘落盘 表结构设计优化SQL语句及索引优化SQL优化实战案例 MySQL性能优化我们可以从以下四个维度考虑&#xff1a;硬件升级、系统配置、表结构设计、SQL语句和索引。 从成本上来说&#xff1a;硬件升…

Python_Flask02

所有人都不许学Java了&#xff0c;都来学Python&#xff01; 如果不来学的话请网爆我的老师 连接前的准备 安装pymysql 和 flask_sqlalchemy&#xff0c;安装第三下面两个所需要的包才能连接上数据库 pip install pymysql pip install flask_sqlalchemy pymysql是一个Pyth…

YOLOv6

YOLOv6 是继 YOLOv5 之后&#xff0c;由 Meituan 的团队开发的一个目标检测模型。YOLOv6 的目标是进一步提高模型的性能&#xff0c;特别是在处理速度、准确度、以及模型的精简化方面&#xff0c;并且它在一些特定任务上进行了优化。YOLOv6 引入了多个创新&#xff0c;并优化了…

VBA信息获取与处理第四个专题第二节:将工作表数据写入VBA数组

《VBA信息获取与处理》教程(版权10178984)是我推出第六套教程&#xff0c;目前已经是第一版修订了。这套教程定位于最高级&#xff0c;是学完初级&#xff0c;中级后的教程。这部教程给大家讲解的内容有&#xff1a;跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互…