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. Maven的生命周期和maven-assembly-plugin插件使用
  2. 自然辩证法的当代价值
  3. Centos7.2搭建Openstack的Swift组件,查看状态:No such file or directory
  4. 简明python教程pdf-python简明教程中文pdf
  5. PHP+mysql+ajax搭建图书管理系统
  6. mysql 获取倒数第二_如何从MySQL中的表中获取倒数第二条记录?
  7. python中将四元数转换为旋转矩阵
  8. mysql禁用历史命令_如何禁止mysql记录历史命令
  9. 程序员放弃阿里60w年薪,选到手5k的公务员,坚信公务员后期完胜程序员
  10. golang |问题代码报go并发死锁
  11. Linux学习之路(2-1)文件、目录与磁盘格式
  12. java applet 教程_教你构建第一个Java Applet程序
  13. java作业的提交规范与要求
  14. python excel写入日期变数字_RPA-使用Python读取Excel日期结果为数字时的转换处理方法...
  15. Testin云测云层天咨众测学院开课了!
  16. 怎样设置CAD图纸批量打印?
  17. 【Django 天天生鲜项目05】订单(Mysql事务、并发处理、支付宝支付、评论)
  18. linux卸载cuda10.0,Ubuntu卸载cuda10.0
  19. 津津的储蓄计划 NOIp提高组2004
  20. 一文读懂C++中的cin.ignore()

热门文章

  1. VUE单页面应用百度统计失效问题解决方法
  2. firebug兼容的firefox版本
  3. 佳能2520i设置远程服务器,佳能2520i发送文件如何设置 佳能2520i设置图文教程
  4. 如何手机录音文件转换mp3格式
  5. 关于VM一启动虚拟机电脑就重启或蓝屏的几个解决方法
  6. 服务器架构的演变过程
  7. mtk平台 声音从mic到speaker loadspeaker handset间的关系
  8. 2020~2022年软件测试的五大趋势
  9. 理解Rao - Cramer不等式
  10. 基于零代码搭建你自己的设备管理系统