spring常用知识点

1、拦截器和过滤器区别

1. 原理不同:

拦截器是基于java的反射机制,而过滤器采用责任链模式是基于函数回调的。

2. 使用范围不同:

过滤器Filter的使用依赖于Tomcat等容器,导致它只能在web程序中使用

拦截器是一个Sping组件,由Spring管理,不依赖于Tomcat容器,是可以单独使用的。也可以应用于Application、Swing容器中。

3.执行顺序不同:

先过滤器后拦截器

4.注入Bean情况不同:

拦截器加载的时间点在springcontext之前,而Bean又是由spring进行管理。

在注册拦截器之前,先将Interceptor 手动进行注入

2、什么是AOP? 有哪些AOP的概念?


AOP(Aspect-Oriented Programming)是一种编程思想,它通过将应用程序分解成多个切面,来实现对应用程序进行横向切割的目的,从而实现代码的复用和系统的解耦。

AOP的核心思想是将与业务逻辑无关的代码,如日志、事务、异常处理等,从业务逻辑代码中分离出来,形成独立的模块,以便于复用和维护。

AOP的一些概念如下:

切面(Aspect):切面是一个模块化的横切关注点,它通过对某个点进行拦截,来实现对目标对象的增强。
连接点(Join Point):连接点是在应用程序执行过程中能够插入切面的点,例如方法调用或异常处理等。
切入点(Pointcut):切入点是一组连接点的集合,它定义了在哪些连接点处应用切面。
通知(Advice):通知是切面在连接点上执行的操作,例如在方法调用前、方法调用后、方法返回时或方法抛出异常时执行的操作。
织入(Weaving):织入是将切面应用到目标对象并创建新的代理对象的过程。织入可以在编译时、类加载时或运行时进行。
目标对象(Target Object):目标对象是应用程序中需要被增强的对象。
代理对象(Proxy Object):代理对象是一个中间件对象,它拦截对目标对象的访问并调用切面提供的通知。
通过AOP的概念,我们可以将应用程序按照不同的横向关注点进行切割,并将与业务逻辑无关的代码分离出来,从而提高应用程序的可维护性和可扩展性。常见的AOP框架有Spring AOP和AspectJ。

3、AOP 有哪些应用场景?

AOP(Aspect-Oriented Programming)可以在许多场景下被应用。以下是一些AOP的应用场景:

日志记录:在方法调用前后记录日志,用于排查错误和分析系统性能。
安全性控制:控制用户对系统中某些资源或方法的访问权限,确保系统安全。
事务管理:在方法调用前后开启、提交或回滚事务,确保数据的一致性和完整性。
缓存管理:通过在方法调用前检查缓存中是否有目标对象的缓存结果,减少系统的响应时间和网络开销。
性能监控:记录方法调用的时间、次数和异常等信息,以便于分析系统性能。
异常处理:在方法调用过程中捕获异常并记录或通知开发人员,以便于及时处理异常情况。
数据验证:在方法调用前对输入参数进行验证,确保输入数据的正确性和合法性。
代码复用:将与业务逻辑无关的代码抽离出来,以便于复用和维护。

4、Bean Factory和ApplicationContext有什么区别?


Bean Factory和ApplicationContext都是Spring框架中负责管理Bean的容器,但是它们之间有一些区别:

Bean Factory是Spring框架的基础设施,提供了最基本的IOC功能,而ApplicationContext是Bean Factory的超集,包含了Bean Factory的所有功能,并且还提供了更多的企业级特性,如事件传播、国际化、AOP等。
在实现上,ApplicationContext是Bean Factory的扩展,ApplicationContext除了提供了Bean Factory的所有功能之外,还提供了更多的功能,例如:资源管理、事件发布等等。
一般来说,Bean Factory适用于轻量级应用,而ApplicationContext则适用于大型企业应用,因为ApplicationContext提供了更多的企业级特性和功能,例如:事务管理、远程访问、JNDI访问等等。
ApplicationContext在启动时就实例化所有的单例Bean,而Bean Factory是在获取Bean时才进行实例化。
总之,ApplicationContext是Bean Factory的超集,提供了更多的企业级特性和功能,一般情况下我们优先使用ApplicationContext。

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

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

相关文章

jQuery 常用API

一、jQuery 选择器 1、jQuery 基础选择器 原生JS获取元素方式很多,很杂,而且兼容性情况不一致,因此jQuery给我们做了封装,使获取元素统一标准 2、jQuery 层级选择器 3、隐式迭代 遍历内部 DOM 元素(伪数组形式存储&am…

存储+调优:存储-IP-SAN-EXTENSION

存储调优:存储-IP-SAN-EXTENSION 文件系统的锁标记 GFS(锁表空间) ----------- ------------ ------------- 节点 | ndoe1 | | node2 | | node3 | ---------- ------…

STM32建立工程问题汇总

老版本MDK,例如MDK4 工程内容如下: User文件夹中存放main.c文件,用户中断服务函数(stm32f1xx.it.c),用户配置文件(stm32f1xx_hal_conf.h)等用户程序文件,或者mdk启动程序…

Spring Cloud Gateway 网关

一. 什么是网关(Gateway) 网关就是一个网络连接到另一个网络的关口。 在同一个项目或某一层级中,存在相似或重复的东西,我们就可以将这些相似重复的内容统一提取出来,向前或向后抽象成单独的一层。这个抽象的过程就是…

AURIX TC3xx单片机介绍-启动过程介绍3

如下的内容是英文为主,对于TC3xx芯片启动原理不清楚的,可以给我留言,我来解答你们的问题! 3.2.1 Reset类型识别 Reset类型的识别是用来判断上次的复位是Application Reset还是System Reset还是CPU0 Reset。基于复位的原因,启动软件会运行不同的分支逻辑。复位原因可以通…

常用目标检测预训练模型大小及准确度比较

目标检测是计算机视觉领域中的一项重要任务,旨在检测和定位图像或者视频中的目标对象。当人类观看图像或视频时,我们可以在瞬间识别和定位感兴趣的对象。目标检测的目标是使用计算机复制这种智能。 近年来,目标检测网络的发展日益成熟&#…

Java GC问题排查的一些个人总结和问题复盘

个人博客 Java GC问题排查的一些个人总结和问题复盘 | iwts’s blog 是否存在GC问题判断指标 有的比较明显,比如发布上线后内存直接就起飞了,这种也是比较好排查的,也是最多的。如果单纯从优化角度,看当前应用是否需要优化&…

【PB案例学习笔记】-11动画显示窗口

写在前面 这是PB案例学习笔记系列文章的第11篇,该系列文章适合具有一定PB基础的读者。 通过一个个由浅入深的编程实战案例学习,提高编程技巧,以保证小伙伴们能应付公司的各种开发需求。 文章中设计到的源码,小凡都上传到了gite…

IDEA2024创建maven项目

1、new->project 2、创建后展示 3、生成resources文件夹 4、测试--编写一个hello文件

5.28学习总结

java复习总结 hashcode()和equals() hashcode():在Object里这个方法是通过返回地址的整数值来生成哈希值。 equals():在Object里这个方法是通过比较他们的内存地址来确定两个对象是否相同。 运行效率:hashcode的时间复杂度为O(1)(因为只要计算一次哈…

养老院管理系统基于springboot的养老院管理系统java项目

文章目录 养老院管理系统一、项目演示二、项目介绍三、系统部分功能截图四、部分代码展示五、底部获取项目源码(9.9¥带走) 养老院管理系统 一、项目演示 养老院管理系统 二、项目介绍 基于springboot的养老院管理系统 角色:超级…

Python-3.12.0文档解读-内置函数ord()详细说明+记忆策略+常用场景+巧妙用法+综合技巧

一个认为一切根源都是“自己不够强”的INTJ 个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 详细说明 概述 语法 参数 返回值 示例 注意事项 应用场景 记忆策略 常用场景…

网易面试:手撕定时器

概述: 本文使用STL容器-set以及Linux提供的timerfd来实现定时器组件 所谓定时器就是管理大量定时任务,使其能按照超时时间有序地被执行 需求分析: 1.数据结构的选择:存储定时任务 2.驱动方式:如何选择一个任务并执…

微火问答:全域外卖和本地生活服务是同个项目吗?

当前,本地生活赛道火爆程度不断升级,作为其主要板块之一的团购外卖也持续迸发出新的活力。而全域运营的出现无疑是给团购外卖这把正在熊熊燃烧的烈火,又添了一把新柴! 所谓全域运营,简单来说,就是指所有领…

xjar加密springboot的jar包,并编译为执行程序

场景:当前项目需要进行jar包部署在windows环境和linux环境,并要求使用xjar加密。 1. xjar加密 源码程序自行搜索,这里只介绍加密及运行,运行加密程序,指定jar包,输入密码 2. 加密后的目录 3. go程序编译 …

HCIP-Datacom-ARST自选题库__BGP/MPLS IP VPN简答【3道题】

1.在BGP/MPLSIPVPN场景中,如果PE设备收到到达同一目的网络的多条路由时,将按照定的顺序选择最优路由。请将以下内容按照比较顺序进行排序。 2.在如图所示的BGP/MPLSIP VPN网络中,管理员准备通过Hub-Spoke组网实现H站点对VPM流量的集中管控&am…

HNU-人工智能-作业3

人工智能-作业3 计科210X 甘晴void 202108010XXX 1.贝叶斯网络 根据图所给出的贝叶斯网络,其中:P(A)0.5,P(B|A)1, P(B|A)0.5, P(C|A)1, P(C|A)0.5,P(D|BC)1,P(D|B, C)0.5&#xff…

如何将天猫内容保存为PDF格式?详细步骤与实战解析

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、引言:保存天猫内容的重要性 二、环境准备与工具安装 1. 安装必要的Python包…

宝塔部署Java+Vue前后端分离项目

1. 服务器 服务器选择Linux的CentOS7的版本 2. 宝塔Linux面板 2.1 百度搜索宝塔 2.2 进去之后点击立即免费安装 2.3 选择Linux在线安装,输入服务器信息进行安装(也可以选择其他方式) 安装完成之后会弹一个宝塔的应用面板,并附带有登录名称和密码&…

Linux快速定位日志 排查bug技巧和常用命令

1. 快速根据关键字定位错误信息 grep 在 Linux 系统中,可以使用 grep 命令来查找日志文件中包含特定关键字的行。假设你的日志文件路径为 /var/log/myapp.log,你想要查找包含关键字 "abc" 的日志内容,可以按照以下步骤操作&#…