Spring-AOP总结

1、如何用注解的方式来完成属性注入?

答:按类型分可以分为值类型注入和引用类型注入。

值类型注入可以通过@Value()注解来完成,该注解既可以声明在属性上,也可以声明在方法上,建议声明在方法上,但是更多的人会声明在属性上,因为更方便。

引用类型注入可以通过三种注解方式来完成,分别为:@Autowired、@Autowired和@Qualifier()二者结合、@Resource()。建议使用@Resource(),但是一般我都会用@Autowired
 

2、谈谈你对AOP的理解。

AOP,面向切面编程

OOP:面向对象编程

3、Spring实现AOP的原理/实现方式/动态代理的实现方式有几种

答:JDK动态代理和cglib代理。

JDK动态代理有缺陷,就是被代理对象必须实现接口才能产生代理对象,如果没有接口,就不能使用动态代理技术。我们用spring容器来实现动态代理,假如要管理的对象没有实现接口,那么就不能产生代理对象了。为了让所有的对象都能产生动态代理对象,Spring又融入了第三方代理技术cglib代理。Cglib可以对任何类生成代理对象,它的原理是对目标对象进行继承代理,如果目标对象被final修饰,那么该类无法被cglib代理。
 

动态代理方式:可以在不修改主业务逻辑的前提下,扩展和增强其功能:

AOP其实就是一个动态代理,动态代理干什么它就干什么,它是动态代理的规范化!

4、那么Spring到底使用的是JDK代理,还是cglib代理呢?

答:混合使用。如果被代理对象实现了接口,就优先使用JDK代理,如果没有实现接口,就用用cglib代理。

4. Spring切面可以应用5种类型的通知,哪5种?

答:前置通知(Before)、后置通知(After,在方法完成之后调用通知,无论方法执行是否成功)、后置通知(After-returning,在方法成功执行之后调用通知)、异常通知(After-throwing,在方法抛出异常后调用通知)、环绕通知(Around,在目标方法之前之后都调用)。

 
 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

南师大GIS专业2024排名NO.1!!!

南师大GIS 666 学科专业实力666,研究方向多多多! 有学术方向有开发应用方向, 有GIS(建模、数字地形、基础理论和三维GIS等)、 有Cartography (叙事地图、动态地图、地图风格迁移等&#…

自养号测评全揭秘:沃尔玛卖家如何实现销量稳步增长

在沃尔玛这片激烈的商业战场上,我作为一位销售者,深知在这个竞争激烈的市场中,测评对于提升产品排名、权重以及销量的关键作用。随着测评需求的不断增长,我们意识到,寻找可靠的测评服务不再是简单的选择,而…

【刷力扣】23. 合并 K 个升序链表(dummy节点技巧 + 分治思维 + 优先队列)

目录 一、合并升序链表问题二、题目:[21. 合并两个有序链表](https://leetcode.cn/problems/merge-two-sorted-lists/description/)1、掌握dummy节点的技巧 三、题目:[23. 合并 K 个升序链表](https://leetcode.cn/problems/merge-k-sorted-lists/descri…

Linux DMA-Buf驱动框架

一、DMABUF 框架 dmabuf 是一个驱动间共享buf 的机制,他的简单使用场景如下: 用户从DRM(显示驱动)申请一个dmabuf,把dmabuf 设置给GPU驱动,并启动GPU将数据输出到dmabuf,GPU输出完成后&#xf…

Vscode flake8插件 python代码语法格式检测/代码过长等误报设置

在vscode中python格式检测使用flake8插件很方便,但是经常会报出一些不必要错误,影响开发效率,忽略这些错误可以帮助减少对于特定项目可能不太关键的PEP 8警告或代码风格问题的干扰,特别是在项目有自己的格式化和编码标准时。使用f…

一款经典BUCK DCDC降压芯片TPS5430适合24V转5V转12V及其电路图

前言: TPS5430封装和丝印 经典老款DCDC,适合24V转5V、24V转12V及其它24V转其它电压降压使用,对于输入电压较低,如输入12V电压的,不推荐使用该芯片,该芯片出现时间较长,且非同步整流芯片&#xf…

React@16.x(29)useRef

目录 1,介绍2,和 React.createRef() 的区别3,计时器的问题 目前来说,因为函数组件每次触发更新时,都会重新运行。无法像类组件一样让一些内容保持不变。 所以才出现了各种 HOOK 函数:useState,u…

北方工业大学24计算机考研情况,学硕专硕都是国家线复试!

北方工业大学(North China University of Technology,NCUT),简称“北方工大”,位于北京市,为一所以工为主、文理兼融,具有学士、硕士、博士培养层次的多科性高等学府,是中华人民共和…

Python读取wps中的DISPIMG图片格式

需求: 读出excel的图片内容,这放在微软三件套是很容易的,但是由于wps的固有格式,会出现奇怪的问题,只能读出:类似于 DISPIMG(“ID_2B83F9717AE1XXXX920xxxx644C80DB1”,1) 【该DISPIMG函数只有wps才拥有】 …

lua对接GPT4实现对话

演示效果: 准备材料: 1、FastWeb网站开发服务:fwlua.com 2、一台服务器 该示例使用开源项目:fastweb 实现。 代码比较简单,主要是两部分,一个lua代码和一个html页面,用来用户发起请求和后台…

Gradle实现类似Maven的profiles功能

版本说明 GraalVM JDK 21.0.3Gradle 8.7Spring Boot 3.2.5 目录结构 指定环境打包 application.yml/yaml/properties 执行 bootJar 打包命令前要先执行 clean【其它和 processResources 相关的命令也要先执行 clean】,否则 active 值不会变! spring…

最实用的 LeetCode 刷题指南

暑期实习基本结束了,校招即将开启。当前就业环境已不再是那个双向奔赴时代了。求职者在变多,岗位在变少,要求还更高了,最近社群又开始活跃起来了,各种讨论、各种卷。 为方便大家快手入手、节省时间,我整理…

永磁同步直线电机(PMLSM)控制与仿真3-永磁同步直线电机数学三环控制整定

文章目录 1、电流环参数整定2、速度环参数整定3、位置环参数整定 写在前面:原本为一篇文章写完了永磁同步直线电机数学模型介绍,永磁同步直线电机数学模型搭建,以及永磁同步直线电机三环参数整定及三环仿真模型搭建,但因为篇幅较长…

ComfyUI中使用 SD3 模型(附模型下载详细说明)

文章目录 背景安装方式一方式二 测试 背景 StabilityAI近日开源了Stable Diffusion 3 Medium,简称 SD3,该模型拥有着20亿参数。其特点如下: 提升了整体图片的质量、真实感提供了三种文本编码器可组合使用,有助于在性能和效率之间…

iOS18新增通话录音和应用锁!附升级教程及内置壁纸

一觉睡醒,iOS18终于是揭开面纱了,而且已经有测试版给开发者使用了。 不过还是建议咱们普通用户不要轻易尝试,而且在升级之前一定要用iMazing做个备份,以免测试系统出现问题,丢失数据。 这次WWDC2024与之前爆料完全一样…

【计算机网络仿真实验-实验2.6】带交换机的RIP路由协议

实验2.6 带交换机的rip路由协议 1. 实验拓扑图 2. 实验前查看是否能ping通 不能 3. 三层交换机配置 switch# configure terminal switch(config)# hostname s5750 !将交换机更名为S5750 S5750# configure terminal S5750(config)#vlan 10 S5750(config-vlan)#exit S57…

面向事件编程之观察者模式

前言 村里的老人常说:真男人就该懂得遵守“三不原则”——不主动、不拒绝、不负责。 一个复杂的软件系统,其中必然会存在各种各样的“对象”,如果在设计之初没有注意控制好耦合度,导致各个对象甚至是函数之间高度耦合&#xff0…

工业自动化领域常见的通讯协议

工业自动化领域常见的通讯协议,包括PROFINET、PROFIBUS、Modbus、Ethernet/IP、CANopen、DeviceNet和BACnet。通过分析这些协议的技术特点、应用场景及优势,比较它们在工业自动化中的性能和适用性,帮助选择最合适的协议以优化系统性能和可靠性…

记录AE快捷键(持续补充中。。。)

记录AE快捷键 快捷键常用快捷键图层快捷键工具栏图层与属性常用指令视图菜单时间轴常规快捷键项目首选项功能摄像机操作 常用操作导入AI/PS工程文件加选一个关键参数快速回到上下一帧隐藏/显示图层关键帧拉长缩短关键帧按着鼠标左键不松手,在秒表那一列往下移动会都…