Spring见解4 基于注解的AOP配置

5.基于注解的AOP配置

5.1.创建工程

5.1.1.pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.by</groupId><artifactId>Spring_AOP_Annotation</artifactId><version>1.0-SNAPSHOT</version><dependencies><!-- Spring常用依赖 --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.1.8.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</artifactId><version>5.1.8.RELEASE</version></dependency></dependencies>
</project>

5.1.2.dao

@Repository
public class UserDaoImpl implements UserDao {@Overridepublic void addUser(){System.out.println("insert into tb_user......");}
}

5.1.3.service

@Service
public class UserServiceImpl implements UserService {@Autowiredprivate UserDao userDao;public void addUser() {userDao.addUser();}
}

5.1.4.applicationContext.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"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><context:component-scan base-package="com.by"></context:component-scan>
</beans>

5.1.5.测试

/*** 模拟表现层*/
public class Client {public static void main(String[] args) {ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");//使用对象UserService userService = ac.getBean("userServiceImpl",UserService.class);userService.addUser();}
}

5.2.增强

5.2.1.applicationContext.xml

<!-- 开启spring对注解AOP的支持 -->
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>

3.2.3.AOP配置

  1. 常用注解

    • @Aspect:把当前类声明为切面类
    • @Before:前置通知,可以指定切入点表达式
    • @AfterReturning:后置【try】通知,可以指定切入点表达式
    • @AfterThrowing:异常【catch】通知,可以指定切入点表达式
    • @After:最终【finally】通知,可以指定切入点表达式
    • @Around:环绕通知,可以指定切入点表达式
  2. 注解方式实现aop

    @Component
    @Aspect
    public class MyLogger {@Before("execution(* com.by.service.*.*(..))")public void before(){System.out.println("方法开始时间:"+new Date());}@After("execution(* com.by.service.*.*(..))")public void after(){System.out.println("方法结束时间:"+new Date());}
    }
    

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

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

相关文章

余震强度预测能力升级,Nature 刊文认证基于神经网络的模型性能优于传统模型

作者&#xff1a;李宝珠 编辑&#xff1a;李玮栋、xixi&#xff0c;三羊 地震的发生涉及诸多变量&#xff0c;「预测」存在挑战&#xff0c;但余震发生次数及强度的预测已取得重大进展。 2023 年 12 月 18 日 23 时 59 分&#xff0c;甘肃省临夏州积石山县发生 6.2 级地震&…

企鹅目标检测数据集VOC格式400张

企鹅&#xff0c;一种可爱而独特的鸟类&#xff0c;以其圆滚滚的身体、黑白相间的羽毛和独特的行走方式而备受人们喜爱。 企鹅是鸟纲、企鹅科的动物&#xff0c;它们生活在南半球&#xff0c;特别是南极地区。企鹅的体型短而肥胖&#xff0c;有着流线型的身体和黑白相间的羽毛…

excel中相同类型的数据归到一起显示

1.选中所有数据 2.开始菜单-排序和筛选-自定义排序 3.选择分类关键字 此处&#xff0c;以属性为例 4.效果 归类后的数据&#xff1a;

Windows打印后打印机没有反应

Windows点打印后打印机没有任何反应 有时候点了打印&#xff0c;打印机却没有任何反应&#xff0c;别人却可以正常打印文件&#xff0c;问题可能出在自己电脑上。 可以试试以下几个方法&#xff0c;不好使不要骂我。 可能是本地打印服务问题 可以尝试在服务中将打印机服务重…

消息队列-RockMQ-批量收发实践

批量收发实战 发送消息是需要网络连接的如果我们单条发送吞吐量可能没有批量发送好。剖来那个发送可以减少网络IO开销&#xff0c;但是也不能一批次发送太多的数据&#xff0c;需要根据每条消息的大小和网络带宽来确定量的数目。 比如网络带宽为可以支持一次性发送8M的数据包&…

复试 || 就业day05(2024.01.08)项目一

文章目录 前言代码模拟梯度下降构建函数与导函数函数的可视化求这个方程的最小值&#xff08;直接求导&#xff09;求方程最小值&#xff08;不令方程导为0&#xff09;【梯度下降】eta0.1eta 0.2eta 50eta 0.01画出eta0.1时的梯度下降x的变化过程 总结 前言 &#x1f4ab;你…

Unity中URP下使用屏幕坐标采样深度图

文章目录 前言一、Unity使用了ComputeScreenPos函数得到屏幕坐标1、 我们来看一下这个函数干了什么2、我们看一下该函数实现该结果的意义 二、在Shader中使用&#xff08;法一&#xff09;1、在Varying结构体中2、在顶点着色器中3、在片元着色器中 三、在Shader中使用&#xff…

玩转Mysql 三(权限管理)

一路走来&#xff0c;所有遇到的人&#xff0c;帮助过我的、伤害过我的都是朋友&#xff0c;没有一个是敌人。 一、用户管理 1、登录MySQL服务器 语法示例&#xff1a; mysql –h hostname|hostIP –P port –u username –p DatabaseName –e "SQL语句" 详细命令…

MYSQL篇--索引高频面试题

mysql索引 1什么是索引&#xff1f; 索引说白了就是一种数据结构&#xff0c;可以协助快速查询数据&#xff0c;以及更新数据库表中的数据&#xff0c;更通俗的来说索引其实就是目录&#xff0c;通过对数据建立索引形成目录&#xff0c;便于去查询数据&#xff0c;而mysql索引…

DES算法(Python实现)

一、具体描述 基于计算机高级语言&#xff08;如C语言&#xff09;实现DES算法 二、名词术语与相关知识 DES算法 DES&#xff08;Data Encryption Standard&#xff09;是一种对称加密算法&#xff0c;被广泛应用于数据加密领域。它使用64位密钥和64位明文&#xff0c;通过…

【⭐AI工具⭐】AI工具导航推荐

目录 零 工具导航&#x1f449;【[AI工具集导航](https://ai-bot.cn/)】&#x1f448;&#x1f449;【[iForAI](https://iforai.com/)】&#x1f448;&#x1f449;【[AInav](https://www.ainav.cn/)】&#x1f448;&#x1f449;【[Navi AI 导航](https://www.naviai.cn/)】&a…

Spring 见解 6 Spring事务控制

Spring事务控制 事务介绍 什么是事务&#xff1f; 当你需要一次执行多条SQL语句时&#xff0c;可以使用事务。通俗一点说&#xff0c;如果这几条SQL语句全部执行成功&#xff0c;则才对数据库进行一次更新&#xff0c;如果有一条SQL语句执行失败&#xff0c;则这几条SQL语句…

leetcode“位运算”——只出现一次的数字

只出现一次的数字i&#xff1a; https://leetcode.cn/problems/single-number/ 给你一个非空整数数组 nums&#xff0c;除了某个元素只出现一次以外&#xff0c;其余每个元素均出现两次。找出那个只出现一次的元素。 class Solution { public:int singleNumber(vector<i…

外汇天眼:放弃对波动的偏爱才能追逐趋势!

无论在熊市还是牛市中&#xff0c;市场上亏损者仍然和别的状态下一样多。 在趋势不明的情况下&#xff0c;我们盼望趋势的来临; 然而趋势真正形成之时&#xff0c;我们却仍然一无所获。 趋势表面上看对我们很重要&#xff0c;然而具体交易时却又难以利用&#xff0c;在具体交易…

优优聚美团外卖代运营,提升销量的秘密武器

随着互联网的飞速发展&#xff0c;外卖平台逐渐成为人们生活中的重要组成部分。作为国内领先的外卖平台&#xff0c;美团外卖吸引了众多商家入驻。然而&#xff0c;如何在竞争激烈的市场中脱颖而出&#xff0c;成为许多商家面临的难题。此时&#xff0c;美团外卖代运营应运而生…

基于动物迁徙算法优化的Elman神经网络数据预测 - 附代码

基于动物迁徙算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于动物迁徙算法优化的Elman神经网络数据预测 - 附代码1.Elman 神经网络结构2.Elman 神经用络学习过程3.电力负荷预测概述3.1 模型建立 4.基于动物迁徙优化的Elman网络5.测试结果6.参考文献7.Matlab代码 摘要&…

华清远见作业第二十三天——IO(第六天)

使用有名管道完成两个进程之间相互通信 代码&#xff1a; 创建管道&#xff1a; #include<a.h> int main(int argc, const char *argv[]) {//创建有名管道文件if(mkfifo("./myfifo1", 0664) ! 0){perror("mkfifo1 error");return -1;}printf("…

【Java集合篇】HashMap的put方法是如何实现的?

HashMap的put方法是如何实现的 ✔️典型解析✔️ 拓展知识仓✔️HashMap put方法的优缺点有哪些✔️如何避免HashMap put方法的哈希冲突✔️如何避免HashMap put方法的哈希重 ✔️源码解读✔️putVal 方法主要实现如下&#xff0c;为了更好的帮助大家阅读&#xff0c;提升效率&…

antd ColorPicker 颜色选择器

ColorPicker 属性 allowClear 允许清除选择的颜色 boolean false arrow 配置弹出的箭头 boolean | { pointAtCenter: boolean } true children 颜色选择器的触发器 React.ReactNode - defaultValue 颜色默认的值 string | Color - defaultFormat 颜色格式默认的值 rgb | he…

【独家解密】Java中定时任务的解决方案详解

目录 1、前言 2、定时任务的概述 2.1 什么是定时任务 2.2 定时任务的应用场景 3、使用Timer类和TimerTask类 3.1 Timer类的使用方法 3.2 TimerTask类的使用方法 4、使用ScheduledThreadPoolExecutor类 4.1 ScheduledThreadPoolExecutor类的使用方法 5、使用Spring框架…