三、AOP

文章目录

  • 1. AOP(概念)
  • 2. AOP(底层原理)
    • 2.1 AOP 底层使用动态代理
    • 2.2 AOP(JDK动态代理)
  • 3. AOP(术语)
    • 3.1 连接点
    • 3.2 切入点
    • 3.3 通知(增强)
    • 3.4 切面
  • 4. AOP操作(准备工作)
    • 4.1 Spring 框架一般都是基于 AspectJ 实现 AOP 操作
    • 4.2 基于 AspectJ 实现 AOP 操作
    • 4.3 在项目工程里面引入 AOP 相关依赖
    • 4.4 切入点表达式
  • 5. AOP 操作(AspectJ 注解)※
  • 6. AOP 操作(AspectJ 配置文件)
  • 7. JdbcTemplate(概念和准备)
    • 7.1 什么是 JdbcTemplate
    • 7.2 准备工作
  • 8. JdbcTemplate 操作数据库(添加)
  • 9. JdbcTemplate 操作数据库(修改和删除)
  • 10. JdbcTemplate 操作数据库(查询返回某个值)
  • 11. JdbcTemplate 操作数据库(查询返回对象)
  • 12. JdbcTemplate 操作数据库(查询返回集合)
  • 13. JdbcTemplate 操作数据库(批量操作)

1. AOP(概念)

(1)面向切面编程(方面),利用 AOP 可以对业务逻辑的各个部分进行隔离,从而使得 业务逻辑 各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
(2)通俗描述:不通过修改源代码方式,在主干功能里面添加新功能。将各 业务逻辑代码之间 或 业务逻辑代码非业务逻辑代码 之间 解耦
(3)使用登录例子说明 AOP。
在这里插入图片描述

2. AOP(底层原理)

2.1 AOP 底层使用动态代理

在这里插入图片描述

2.2 AOP(JDK动态代理)

1、使用 JDK 动态代理,使用 Proxy 类里面的方法创建代理对象
在这里插入图片描述

2、编写 JDK 动态代理代码
在这里插入图片描述

在这里插入图片描述

3. AOP(术语)

3.1 连接点

在这里插入图片描述

3.2 切入点

在这里插入图片描述

3.3 通知(增强)

在这里插入图片描述

在这里插入图片描述

3.4 切面

在这里插入图片描述

4. AOP操作(准备工作)

4.1 Spring 框架一般都是基于 AspectJ 实现 AOP 操作

(1)AspectJ 不是 Spring 组成部分,独立 AOP 框架,一般把 AspectJ 和 Spirng 框架一起使用,进行 AOP 操作

4.2 基于 AspectJ 实现 AOP 操作

(1)基于 xml 配置文件实现
(2)基于注解方式实现(使用)

4.3 在项目工程里面引入 AOP 相关依赖

在这里插入图片描述

4.4 切入点表达式

在这里插入图片描述

在这里插入图片描述

5. AOP 操作(AspectJ 注解)※

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

6. AOP 操作(AspectJ 配置文件)

在这里插入图片描述

7. JdbcTemplate(概念和准备)

7.1 什么是 JdbcTemplate

(1)Spring 框架对 JDBC 进行封装,使用 JdbcTemplate 方便实现对数据库操作

7.2 准备工作

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

8. JdbcTemplate 操作数据库(添加)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

9. JdbcTemplate 操作数据库(修改和删除)

在这里插入图片描述

10. JdbcTemplate 操作数据库(查询返回某个值)

在这里插入图片描述

在这里插入图片描述

11. JdbcTemplate 操作数据库(查询返回对象)

在这里插入图片描述

12. JdbcTemplate 操作数据库(查询返回集合)

在这里插入图片描述

13. JdbcTemplate 操作数据库(批量操作)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

Element中el-table组件设置max-height右侧出现空白列的解决方法

之前就出现过这个情况,没理过,因为不影响啥除了不美观...但今天看着实在是难受,怎么都不顺眼(可能是我自己烦躁--) 试了很多网上的方法,都不得行,后面发现了这篇文章,解决了! 感谢! Element中t…

深度学习:生成对抗网络(Generative Adversarial Network, GAN)

生成对抗网络(Generative Adversarial Network, GAN) 生成对抗网络(GAN)是一种深度学习模型,最初由Ian Goodfellow于2014年提出。这种模型框架通过让两个神经网络——生成器(Generator)和判别器…

SpringBoot人事系统:企业人才资源的智能管家

6系统测试 6.1概念和意义 测试的定义:程序测试是为了发现错误而执行程序的过程。测试(Testing)的任务与目的可以描述为: 目的:发现程序的错误; 任务:通过在计算机上执行程序,暴露程序中潜在的错误。 另一个…

fastadmin 多商户模式下侧边栏跳转路径BUG

记录:仅作自己项目记录,在一个域名下部署多套项目时,若是多商户模式项目会出现跳转路径问题。 修改 \manystore\library\Auth.php 文件的 getSidebar 方法 // 1 改为: $v[url] isset($v[url]) && $v[url] ? $v[url] :…

霍尼C200系统CC-TUIO31通用输入输出模块电厂用

霍尼C200系统CC-TUIO31通用输入输出模块电厂用,CC-TUIO31技术参数,CC-TUIO31说明书,霍尼韦尔官网,霍尼韦尔代理商,Honeywell官网,Honeywell代理商, gnote: , titlecolor: , description: 易于维护:模块化设计,便于安装、维护和更换,减少停机时…

JavaSE

线程 1. 区分程序、进程、线程 程序:为实现某种功能,使用计算机语言编写的一系列指令的集合。 进程:是运行中的程序(如运行中的原神)进程是操作系统进行资源分配的最小单位。 线程:进程可以进一步细化为线…

斯坦福UE4 C++课学习补充25:AI感知组件

文章目录 一、引入感知组件并绑定委托二、优化角色旋转 一、引入感知组件并绑定委托 PawnSensingComponent是UE中用于感知其他 Pawn(或 Actor)存在的一个组件,常用于 AI 角色的视觉、听觉等感知功能。它为 AI 提供了基础的感知能力&#xff…

关于WPF(Windows Presentation Foundation)中Grid控件

本文将从Grid控件的基础概念开始,逐步深入探讨其特性、用法、实例代码,以及最佳实践。 1. WPF和布局简介 WPF是一种用于构建Windows桌面应用程序的UI框架,它通过XAML(Extensible Application Markup Language)使开…

PDF编辑不求人!4款高效工具,内容修改从此变得简单又快捷

咱们现在生活在一个数字时代,PDF文件可不就是工作、学习还有日常生活中经常要用的东西嘛。但遇到那些需要改动的PDF文件,是不是就觉得有点头疼啊? 因为传统的PDF文件真的不好编辑,这确实挺烦人的。不过呢,我今天要给你…

文本语义检索系统的搭建过程,涵盖了召回、排序以及Milvus召回系统、短视频推荐等相关内容

大家好,我是微学AI,今天给大家介绍一下本文详细介绍了文本语义检索系统的搭建过程,涵盖了召回、排序以及Milvus召回系统的相关内容。通过使用PyTorch框架,我们提供了样例代码,以帮助读者更好地理解和实践。该系统具有广…

systemd实现seatunnel自动化启停

在 systemd 中,您可以通过配置服务单元文件来设置服务在失败或退出后自动重启。这对于确保关键服务在意外退出时能够自动恢复运行非常有用。下面是实现 systemd 自动重启服务的步骤: 通用操作 1. 创建或编辑服务单元文件 假设服务单元文件位于 /etc/systemd/system/my-ser…

深入解析Vue中的双向数据绑定机制

文章目录 一、双向数据绑定的概念单向绑定与双向绑定的区别双向绑定的实例 二、双向绑定的原理MVVM架构ViewModel的工作原理 三、Vue中的双向绑定实现双向绑定流程实现双向绑定的关键代码 一、双向数据绑定的概念 单向绑定与双向绑定的区别 单向绑定是将模型(Mode…

VR全景摄影的拍摄和编辑软件推荐

随着虚拟现实技术的不断进步,VR全景摄影逐渐成为商业、娱乐和教育等多个领域中的重要工具。通过专业的设备与软件,摄影师能够创作出沉浸式的360度全景作品,为观众提供身临其境的视觉体验。在这篇文章中,我们将介绍VR全景摄影的相关…

C# 两个进程/exe通讯方式 两个应用程序通讯方式

C# 两个exe通讯方式 两个应用程序通讯方式 1. 命名管道(Named Pipes) 1.1. 概述 命名管道是一种用于在同一台机器或网络中不同进程之间进行双向通信的机制。它支持同步和异步通信,适用于需要高效数据传输的场景。 1.2. 特点 双向通信&am…

【vue+printJs】前端打印, 自定义字体大小, 自定义样式, 封装共享样式

效果示例 思维导图 目录 1,基本使用1, 依赖下载2, 页面导入3, 修改字体大小(可行但不推荐) 2, 自定义样式,字体大小1, 修改字体大小(推荐)2, 自定义样式3, 封装共享样式 3, 去除页面页脚内容4, 测试案例demo, 直接cv可用5, print-js的其他参数说明 1,基本使用 1, 依赖下载 …

MyBatis-Plus 之 typeHandler 的使用

一、typeHandler 的使用 1、存储json格式字段 如果字段需要存储为json格式,可以使用JacksonTypeHandler处理器。使用方式非常简单,如下所示: 在domain实体类里面要加上,两个注解 TableName(autoResultMap true) 表示自动…

学习之面试题:偏函数

偏函数(Partial Function)是 Python 中的一个实用工具,通常用于函数式编程中,可以固定一个函数的部分参数,从而生成一个新的函数。偏函数在 Python 中通常通过 functools.partial 实现。在面试中,考察偏函数…

无人驾驶打造“新丝路”,驭势科技在卡塔尔设立研发运营中心

在卡塔尔多哈的街头,除了身穿阿拉伯长袍的人群和悠闲的骆驼队伍之外,又将出现一道全新的风景线,那就是来自驭势科技的无人驾驶车。10月8日,在中关村京港澳青年创新创业中心的协助与对接下,驭势科技在卡塔尔科技园正式成…

<Project-8.1.1 pdf2tx-mm> Python 调用 ChatGPT API 翻译PDF内容 历程心得

原因 用ZhipuAI,测试用的PDF里,有国名西部省穆斯林,翻译结果返回 “系统检测到输入或生成内容可能包含不安全或敏感内容,请您避免输入易产生敏感内容的提 示语,感谢您的配合” 。想过先替换掉省名、民族名等&#xff…

计量校准工作中的误差评定与不确定度

计量校准的目的是确定测量仪器的误差和不确定度,以评估其测量结果的可靠性。误差评定和不确定度计算是计量校准过程中的重要步骤。 误差评定是指通过比较测量仪器的测量结果与已知标准值之间的差异,确定仪器的准确性和精度。误差可以分为系统误差和随机误…