Javaweb9 AOP+案例

news2024/11/24 22:57:45

AOP

Aspect Oriented Programming面向切片编程【就是面向特定方法变成】
SpringAOP是Spring框架的高级技术,旨在管理bean对象的过程中,主要通过底层的**动态代理机制,**对特定的方法进行编程
1.导入AOP依赖
2.编写AOP程序
加上@Component//类交给IOC容器管理
@Aspect//表明不是普通类是AOP类
@Around//指定对那些方法使用
在这里插入图片描述

AOP核心概念

连接点:JoinPoint 可以被 AOP 控制的方法
通知:Advice抽取出来的重复的逻辑【体现为一个方法】
切入点:PointCut匹配连接点的条件【切入点表达式】
目标对象:Target通知应用的对象
在这里插入图片描述

AOP执行流程

依赖注入时,注入的是代理对象,就是已经加上AOP功能增强的对象

AOP进阶

1.通知类型

在这里插入图片描述
切入点表达式重复,所以抽取出来。当需要改动切入点表达式时,就只需改动一个就行。
切入点表达式抽取:@Pointcut
在这里插入图片描述

2.通知顺序

在这里插入图片描述
1.字母顺序比如MyAspect1,MyAspect2,MyAspect3这样的顺序
2.用@Order控制

3.切入点表达式

在这里插入图片描述
在这里插入图片描述
方法参数:Integer要写全名即它的包名也要写
在这里插入图片描述

新建注解用来起标识作用
1.自定义注解
@Retention描述注解什么时候生效
@Target作用于于什么地方

连接点

JoinPoint可以会的方法执行时的相关信息
在这里插入图片描述

记录操作日志 案例【妙啊】

黑马课程AOP案例
在这里插入图片描述
步骤:
1.引入依赖
2.将需要记录的整个日志信息建表,对应实体类
3.自定义注解@Log
4.定义切面类

实体类:
实体类

Mapper接口,用来插入日志表
在这里插入图片描述

自定义注解
在这里插入图片描述

定义切面类:
拿到当前登录员工的信息:通过JWT令牌获取登录员工信息,登录成功后,每一次请求,前端都会在请求头中将令牌携带到后端
直接注入一个HttpServletRequest的request对象来拿到当前请求的请求对象
然后,获取请求头中的jwt令牌,解析令牌
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这个request从哪里进来的?什么时间交到ioc中?后面会说,这是spring BOOT的自动配置功能 --HTTPServletRequest是Tomcat收到请求后创建的,然后传给Spring的Servlet

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

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

相关文章

二分查找-java代码实现(easy)

目录 一、问题描述 二、代码实现 三、刷题链接 一、问题描述 二、代码实现 import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** 如果目标值存在返回下标,否则返…

Digital电路仿真软件的安装

文章目录 1. Java环境的安装 2. Digital安装 3. 软件配置 1. Java环境的安装 电路仿真软件Digital是一款用于设计和仿真数字逻辑电路的工具。它可以帮助用户创建、测试和调试各种数字电路,提供可视化的电路编辑环境,使得设计过程更加直观和便捷。 D…

Apple - Cocoa Text Architecture Guide

翻译整理自:Cocoa Text Architecture Guide https://developer.apple.com/library/archive/documentation/TextFonts/Conceptual/CocoaTextArchitecture/Introduction/Introduction.html#//apple_ref/doc/uid/TP40009459 文章目录 一、关于 Cocoa 文本系统1、概览大…

MyBatis 的多级缓存机制是怎么样运作的?

引言:上周三,小 X 去面试一家中厂,其中面试官问到 MyBatis 的多级缓存机制是怎么样运行的?这个问题可以好好准备一下,很多人可能只会用 MyBatisPlus,简单的多表联查 SQL 语句可能都写不出来,更别…

MySql 各种 join

MySql 定义了很多join的方式,接下来我们用一个例子来讲解。 用到的表 本文用到了两个表s1,s2: 内外连接 测试 1 1 1.select * from s1 inner join s2 on(s1.id s2.id);: -------- | id | id | -------- | 3 | 3 | | 4 | 4 | --------2…

sqlite3模块的使用

1. SQLite数据库 SQLite是一个轻量级的, 基于磁盘的, 关系型的数据库管理系统(RDBMS). 它不需要一个独立的服务器进程或操作系统级别的配置. SQLite是D.Richard Hipp在2000年创建的, 并且由于其小巧, 快速, 可靠和易于使用的特性, 它在全球范围内得到了广泛的应用.以下是 SQLi…

最长回文子串问题详解

最长回文子串的问题描述:给出一个字符串S,求S的最长回文子串的长度。 针对这个问题,先看暴力解法:枚举子串的两个端点i和j,判断在[i,j]区间内的子串是否回文。从复杂度上来看,枚举端点需要,判断…

【招联消费金融股份】有限公司2024年5月18日【算法开发岗暑期实习】一面试经验分享

招联消费金融股份有限公司2024年5月18日面试经验分享 面试流程:共30多分钟,先3分钟自我介绍,然后细细介绍简历上面的论文和实习信息。问题1:扩散模型的noise schedule有什么研究。问题2:有哪些常见的数学分布问题3&…

数据结构:冒泡排序,选择排序,插入排序,希尔排序的实现分析

✨✨小新课堂开课了,欢迎欢迎~✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:数据结构与算法 小新的主页:编程版小新-CSDN博客 1.冒泡排序 1.1算法思想 冒泡排序的基本思想就是&a…

关于Java

关于Java Java语言关于并发JVM调优工具写在最后 Java语言 Java语言作为当下主流开发语言,其面向对象的开发模式以及一次编译多次运行,跨平台运行以及自动的垃圾回收机制可以说是给开发者节省了很大的时间用于逻辑功能的开发,那么在开发过程中…

【靶场搭建】-02- 搭建OWASP靶机

1.OWASP靶机介绍 相比较其他靶机,OWASP提供的环境更多,且包含了许多其他靶机的环境,属于性价比比较高的靶机了。 2.下载OWASP 访问以下地址进行下载: https://sourceforge.net/projects/owaspbwa/ 因为OWASP是虚拟机文件&…

C++初学者指南第一步---1. C++开发环境设置

C初学者指南第一步—1. C开发环境设置 目录 C初学者指南第一步---1. C开发环境设置1.1 工具1.1.1 代码编辑器和IDE1.1.2 Windows1.1.3 命令行界面 1.2 编译器1.2.1 gcc/g (支持Linux/Windows/MacOSX)1.2.2 clang/clang (支持Linux/Windows/MacOS)1.2.3 Microsoft Visual Studio…

Jackson的使用

一引入依赖 <!--Jackson是spring-boot-starter-json的一个依赖&#xff08;spring-boot-starter-web中包含spring-boot-starter-json&#xff09;。也就是说&#xff0c;当项目中引入spring-boot-starter-web后会自动引入spring-boot-starter-json --> <dependency&g…

vue关于:deep穿透样式的理解

情况一 子组件&#xff1a; <div class"child"><div class"test_class">test_class<div class"test1">test1<div class"test2">test2</div></div></div></div>父组件&#xff1a; …

麒麟系统mate_indicators进程占用内存资源高

一、问题现象 故障现象&#xff1a;环境出现内存溢出 操作系统&#xff1a;KYlin10-SP2 二、问题定位 发现mate-indicators进程占用内存资源达到节点总内存40%&#xff0c;导致服务出现内存熔断 临时解决 systemctl restart lightdm.service systemctl set-default multi-u…

使用itextPDF实现PDF电子公章工具类

一、制作公章 在线网站&#xff1a;印章生成器 - Kalvin在线工具 (kalvinbg.cn) 然后对公章进行下载保存 盖章图片&#xff1a; 二、生成数字签名 2.1&#xff1a; java工具keytool生成p12数字证书文件 Keytool是用于管理和证书的工具&#xff0c;位于%JAVA_HOME%/bin目录。…

数学建模----单源最短路径模型建立和求解

目录 1.引言和声明 2.单源最短路径 3.建立模型 4.代码求解 1.引言和声明 &#xff08;1&#xff09;最近又在准备学习matlab,有了一些新的理解和体会&#xff0c;记录一下&#xff1b; &#xff08;2&#xff09;这个首先要声明两个符号&#xff0c;这两个符号也是今天才知…

抖音混剪素材哪里找?可以混剪搬运视频素材网站分享

在抖音上制作精彩的视频离不开高质量的素材资源。今天&#xff0c;我将为大家推荐几个优质的网站&#xff0c;帮助你解决素材短缺的问题。这些网站不仅提供丰富的素材&#xff0c;还符合百度SEO优化的规则&#xff0c;让你的视频更容易被发现。 蛙学府素材网 首先要推荐的是蛙…

AOP切面加自定义注解,实现日志记录

AOP切面加自定义注解&#xff0c;实现日志记录 一、AOP二、准备工作三、添加AOP&#xff0c;把日志保存到数据库 一、AOP 在软件业&#xff0c;AOP为Aspect Oriented Programming的缩写&#xff0c;意为&#xff1a;面向切面编程&#xff0c;通过预编译方式和运行期动态代理实…

IT入门知识博客文章大纲第二部分《编程语言》(2/10)

目录 IT入门知识博客文章大纲第二部分《编程语言》 1.引言 2.编程语言概述 2.1 编程语言的发展历程 2.2 编程范式 3.常见的编程语言 3.1 Python 3.2 Java 3.3 C 3.4 JavaScript 3.5 Ruby 4.编程语言的选择 4.1 技术需求 4.2 团队技能 4.3 社区和生态系统 4.4 可…