面试题,说说你对spring IOC和AOP的理解

2023-11-12


在面试中,经常会问,说说你对spring IOC和AOP的理解,问题很宽泛,似乎不知道从何说起。

回答思路:1.先用通俗易懂的话解释下何为IOC和AOP---------》2.各自的实现原理-----------》3.自己的项目中如何使用

以下是个人的一些总结,仅供参考。


1.IOC

许多应用都是通过彼此间的相互合作来实现业务逻辑的,如类A要调用类B的方法,以前我们都是在类A中,通过自身new一个类B,然后在调用类B的方法,现在我们把new类B的事情交给spring来做,在我们调用的时候,容器会为我们实例化。


2. IOC容器的初始化过程

     资源定位,即定义bean的xml-------》载入--------》IOC容器注册,注册beanDefinition

    IOC容器的初始化过程,一般不包含bean的依赖注入的实现,在spring IOC设计中,bean的注册和依赖注入是两个过程,,依赖注入一般发生在应用第一次索取bean的时候,但是也可以在xm中配置,在容器初始化的时候,这个bean就完成了初始化。


3. 三种注入方式,构造器、接口、set注入,我们常用的是set注入

4. bean是如何创建---  工厂模式

5. 数据是如何注入-------反射

6.AOP

        面向切面编程,在我们的应用中,经常需要做一些事情,但是这些事情与核心业务无关,比如,要记录所有update*方法的执行时间时间,操作人等等信息,记录到日志,

通过spring的AOP技术,就可以在不修改update*的代码的情况下完成该需求。

7.AOP的实现原理------代理

       

        以下文章本人觉得可以很好地回答前两个问题,特此转载供读者参考:

http://blog.csdn.net/it_man/article/details/4402245     IOC的定义及实现原理---反射

http://www.cnblogs.com/yanbincn/archive/2012/06/01/2530377.html AOP的定义实现原理---代理

        http://outofmemory.cn/code-snippet/3762/Spring-AOP-learn-example     AOP的应用的三种实现方式


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

面试题,说说你对spring IOC和AOP的理解 的相关文章

随机推荐

  • python处理字节流形式的视频

    python处理内存中字节流形式的视频 在使用python的streamlit库处理上传的文件时碰到一个问题 文件上传后是以字节数组的形式存在内存中 我在后续需要使用cv2库逐帧操作上传的视频 这里就产生一个问题 cv2怎么读取到内存中字节
  • Android 12 应用兼容性适配指导

    一 兼容性调试工具 Android 11开始引入了新的工具 可针对Android新平台中的行为变更进行测试和调试 这些工具是兼容性框架的一部分 该框架使得开发者可通过开发者选项或adb命令单独打开和关闭各项变更 藉此 可在最新android
  • 腾讯gpu-manager

    基本原理 vCUDA通过劫持CUDA的显存申请和释放请求 为每个容器管理它的显存使用量 进而实现了显存隔离 唯一需要注意的是申请context并不通过malloc函数 因此无法知道进程在context使用了多少显存 因此vcuda每次都去向
  • cocos creator创建简单的动态网格

    如果初次尝试cocos的动态网格创建 一定会遇到非常多的问题 所以刚开始使用 最好用一个简单的东西来实现 逐步的复杂化 下面代码展示了一个最基础的三角面的创建 代码 private initDyMesh const pos new Floa
  • 记导入第三方库Alamofire的坑

    按照网上打的操作步骤导入之后 存在No Such Module Alamofire 解决办法是重新Build 但是根本没用 原因是版本问题 选择一个合适的版本即可 在readme 文件可看到对应的版本情况
  • 人体姿态估计--RMPE: Regional Multi-Person Pose Estimation

    RMPE Regional Multi Person Pose Estimation ICCV2017 Code is based Caffe and Torch https github com MVIG SJTU RMPE https
  • Spring Boot如何实现缓存的自动刷新

    Spring Boot如何实现缓存的自动刷新 在Web应用程序中 缓存是提高性能的重要手段之一 在Spring Boot应用程序中 我们可以使用Spring Cache来实现缓存功能 然而 当缓存的数据发生变化时 我们可能需要手动刷新缓存
  • html5 imports,html - HTML5 Imports not working - Stack Overflow

    The correct to do this is through server side pages includes or through JavaScript PHP example Welcome to my home page S
  • 在浏览器输入localhost:3000显示需要新应用打开此localhost原因

    今天做web应用开发时遇到在使用非谷歌浏览器时 输入localhost 3000 显示如下 显示需要新应用打开此localhost 实在是没办法显示出网页 经过反复尝试终于发现问题其实是现在使用非Chrome浏览器 在地址栏输入不带http
  • E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

    ubuntu apt 安装软件的时候 经常有这种错误 是由于依赖关系无法满足而引起的 比如我在安装pangolin的时候 提示 下列软件包有未满足的依赖关系 libxkbcommon dev 依赖 libxkbcommon0 0 8 0 1
  • vm安装Ubuntu 本机navicat连接Ubuntu MySQL

    先下载 虚拟机软件 VMware Workstation Pro 我下的16版 自己找密钥 打开VMware Workstation Pro 左侧右键鼠标 新建虚拟机 如图 选择典型 下一步 稍后安装系统 下一步 选择系统 我选 Linux
  • MVC知识整理

    MVC基础知识整理 ASP NETMVC框架 这里以MVC5为例 涉及到知识有 Model View Controller的使用 Area和Global的理解 路由配置 数据传递的方式 AOP思想的体现 4大过滤器 各种Result Raz
  • 台式计算机关闭屏幕快捷键,多种电脑屏幕关闭方法推荐

    有时因为需要节约电脑电量 有时因为为避免同事窥屏 有时由于顾及后台运行任务进程诸如听歌 电脑磁盘碎片整理等多种原因 这些均促使我们需要关闭电脑屏幕 无论基于何种原因促使我们关闭电脑屏幕 总的来说其并不容易操作 与台式机设置专门显示屏关机按键
  • H.264中的熵编码算法(主讲指数哥伦布编码)

    以下文章参考于殷文杰的博客 https yinwenjie blog csdn net article details 52301584 1 熵编码基本概念 1 熵 这一概念原本来自于化学和热力学 用于度量能量退化的指标 即熵越高 物体或系
  • HTTP 499 状态码 nginx下 499错误的解决办法

    HTTP 499 状态码 nginx下 499错误的解决办法 日志记录中HTTP状态码出现499错误有多种情况 比如nginx反代到一个永远打不开的后端 日志状态记录就会是499 发送字节数是0 经常有用户反馈网站系统时好时坏 因为线上的产
  • 【转】Robust regression(稳健回归)

    Robust regression 稳健回归 语法 b robustfit X y b robustfit X y wfun tune b robustfit X y wfun tune const b stats robustfit 描述
  • 在服务器上用conda创建新的python环境报错(PackagesNotFoundError)

    主要参考这篇博客 https blog csdn net weixin 43815222 article details 108549497 报错截图 prefix 后跟的是我的虚拟环境路径 home envs assignmaterial
  • 汉诺塔——递归的应用

    关于汉诺塔的原理 可看这里 点击打开链接 下面是源代码 include
  • SpringBoot参数校验--List类型

    我们在写后台接口的时候 通常会定义DTO来接收参数 在DTO中使用注解书写验证的规则 然后在Controller层使用 validated注解来验证自己制定的校验规则 但当我们的接口接收的参数为List
  • 面试题,说说你对spring IOC和AOP的理解

    在面试中 经常会问 说说你对spring IOC和AOP的理解 问题很宽泛 似乎不知道从何说起 回答思路 1 先用通俗易懂的话解释下何为IOC和AOP 2 各自的实现原理 3 自己的项目中如何使用 以下是个人的一些总结 仅供参考 1 IOC