1、ioc原理:在传统的实现中,由程序内部代码来控制组件之间的关系。需要使用new关键字来实现两个组件之间关系的组合,这种实现方式会造成组件之间耦合。2、aop原理:AOP将业务逻辑组件和切面类都加入到容器中,负责在业务逻辑运行的时候将日志进行打印,切面类负责动态感知MathC运行到哪里然后执行。

1、ioc原理:

在传统的实现中,由程序内部代码来控制组件之间的关系。需要使用new关键字来实现两个组件之间关系的组合,这种实现方式会造成组件之间耦合。IoC很好地解决了该问题,它将实现组件间关系从程序内部提到外部容器,也就是说由容器在运行期将组件间的某种依赖关系动态注入组件中。

对象A依赖于对象B,当对象A需要用到对象B的时候,IoC容器就会立即创建一个对象B送给对象A。IoC容器就是一个对象制造工厂,需要什么,它会给提供,直接使用即可,而不用考虑所用的东西是如何制成的,也不用考虑最后是怎么被销毁的,这一切全部由IOC容器包办。

2、aop原理:

AOP将业务逻辑组件和切面类都加入到容器中,负责在业务逻辑运行的时候将日志进行打印,切面类负责动态感知MathCalculator.div运行到哪里然后执行。通过@Aspect通知注解给切面类的目标方法标注何时何地运行。

在程序创建之前会根据切入点表达式对增强器进行一一匹配,最终拿到所有的增强器。创建代理对象过程中,会先创建一个代理工厂,获取到所有的增强器(通知方法),将这些增强器和目标类注入代理工厂,再用代理工厂创建对象。

扩展资料:

AOP的组成:

1、方面(Aspect):一个关注点的模块化,这个关注点实现可能另外横切多个对象。事务管理是J2EE应用中一个很好的横切关注点例子。方面用Spring的Advisor或拦截器实现。

2、连接点(Joinpoint):程序执行过程中明确的点,如方法的调用或特定的异常被抛出。

3、通知(Advice):在特定的连接点,AOP框架执行的动作。各种类型的通知包括“around”、“before”和“throws”通知。通知类型将在下面讨论。许多AOP框架包括Spring都是以拦截器做通知模型,维护一个“围绕”连接点的拦截器链。

4、切入点(Pointcut):指定一个通知将被引发的一系列连接点的集合。

5、引入(Introduction):添加方法或字段到被通知的类。Spring允许引入新的接口到任何被通知的对象。Spring中要使用Introduction,可有通过DelegatingIntroductionInterceptor来实现通知,通过DefaultIntroductionAdvisor来配置Advice和代理类要实现的接口

6、目标对象:包含连接点的对象。也被称作被通知或被代理对象。

7、AOP代理:AOP框架创建的对象,包含通知。在Spring中,AOP代理可以是JDK动态代理或者CGLIB代理。

8、织入:组装方面来创建一个被通知对象。这可以在编译时完成(例如使用AspectJ编译器),也可以在运行时完成。Spring和其他纯Java AOP框架一样,在运行时完成织入。

ioc和aop的原理面试相关推荐

  1. 【Spring 源码阅读】Spring IoC、AOP 原理小总结

    Spring IoC.AOP 原理小总结 前言 版本约定 正文 Spring BeanFactory 容器初始化过程 IoC 的过程 bean 完整的创建流程如下 AOP 的过程 Annotation ...

  2. Spring 原理初探——IoC、AOP

    前言 众所周知, 现在的 Spring 框架已经成为构建企业级 Java 应用事实上的标准了,众多的企业项目都构建在 Spring 项目及其子项目之上,特别是 Java Web 项目. Spring ...

  3. spring aop 必须的包 及里面用到的东西_Spring 原理初探——IoC、AOP

    前言 众所周知, 现在的 Spring 框架已经成为构建企业级 Java 应用事实上的标准了,众多的企业项目都构建在 Spring 项目及其子项目之上,特别是 Java Web 项目. Spring ...

  4. 面试官:谈谈你对IOC和AOP的理解及AOP四种实现方式

    目录 一.IOC与AOP介绍 二.实现AOP的四种方式 方式1:基于经典代理来实现 方式2:使用Spring AOP的API接口 方式3:自定义类来实现AOP 方式4:基于注解实现 一.IOC与AOP ...

  5. Spring总结(IOC、AOP原理以及Spring事务)

    一.概述 1.Spring是一个开源免费且轻量级的框架 , 非侵入式的 . 2.控制反转 IoC , 面向切面 Aop 3 .对事物的支持 , 对框架的支持 一句话概括: Spring 是一个轻量级的 ...

  6. 初学者快速了解spring的IOC和AOP原理

    spring框架概述 1.spring是轻量级的开源的javaEE框架 2.spring可以解决企业应用开发的复杂性 3.spring有两个核心部分:IOC和AOP (1)IOC:控制反转,把创建对象 ...

  7. 1.面试中如何回答“请简单介绍一下Ioc、Aop”,建议熟读并背诵

    对Spring两大特性Ioc.Aop的简单理解 1.Ioc(控制反转)和DI(依赖注入):Spring是通过依赖注入的方式达到控制反转的.IOC是一种设计思想,DI是一种方法. 控制反转就是为了达到代 ...

  8. java spring原理详解,spring原理详解,两大核心IOC和AOP

    大家好,我是java梦之旅,一个被Bug耽误了才艺的程序员,专注于Java领域的知识分享和技术交流,每天会给大家带来Java学习的干货教程,喜欢我的同学可以关注我,一起学习,一起加油! 1.概念:sp ...

  9. 关于Spring底层原理面试的那些问题,你是不是真的懂Spring?

    转载自  关于Spring底层原理面试的那些问题,你是不是真的懂Spring? 1.什么是 Spring 框架?Spring 框架有哪些主要模块? Spring 框架是一个为 Java 应用程序的开发 ...

最新文章

  1. 有比 ReadWriteLock更快的锁?
  2. day21 计算器作业
  3. BZOJ4881 线段游戏(二分图+树状数组/动态规划+线段树)
  4. Javascript 强制浏览器渲染Dom文档
  5. hdu Robberies
  6. nginx负载两台服务器
  7. 专题五:MATLAB数据分析与多项式计算
  8. dcdc升压计算器excel_DC-DC电路计算器app下载|DC-DC电路计算器安卓版下载_v1.0.1_9ht安卓下载...
  9. C++最好的图形库是什么?
  10. Windows 由于无法验证发布者,windows阻止控件安装怎么办
  11. 投放Google广告怎么做才是最合适的?谷歌广告的优势在哪
  12. javascript制作钟表
  13. securityCRT使用小结
  14. 使用 YAML 保存游戏数据 !
  15. 【My Electronic Notes系列——组合逻辑电路】
  16. 2022年度总结:拒绝无效努力,实现破圈成长。
  17. 珍爱生命,远离泡面!
  18. 当SEA变成了BADA,让我们高呼女王万岁
  19. usb驱动开发18——设备生命线
  20. Unity 5 物理

热门文章

  1. 双屏Android NDS模拟器,强悍的NDS模拟器《DraStic》移植到安卓
  2. 两个相机可以共用一个电源适配器吗
  3. 【洛谷P3951】小凯的疑惑【数论】
  4. 学校机房网线插入自己电脑的设置方法
  5. python单词分析
  6. 基于android平台语音日程软件的设计与实现,基于Android平台语音日程软件的设计与实现...
  7. ABP Freamwork 生成种子数据 表名abpUser不存在
  8. 【解决】Adobe premiere CC 已停止工作
  9. 哈密顿回路的非暴力解法(转自CSDN大神GDTZX)
  10. SQL学习_常用函数参考