问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

ioc和aop的原理面试是什么?

发布网友 发布时间:2022-04-26 21:17

我来回答

1个回答

热心网友 时间:2023-11-03 14:34

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):指定一个通知将被引发的一系列连接点的集合。AOP框架必须允许开发者指定切入点:例如,使用正则表达式。

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

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

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

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

热心网友 时间:2023-11-03 14:34

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):指定一个通知将被引发的一系列连接点的集合。AOP框架必须允许开发者指定切入点:例如,使用正则表达式。

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

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

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

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

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
医保专线如何网络连接 医保专线为什么不能网络连接 小米椒是什么 生蚝的营养价值如何?怎么吃? 公文写作请示的范文 犯欺诈发行股票、债券罪会判多久 微信视频号开通粉丝团方法步骤 视频号如何开通粉丝团 微信视频号如何加入粉丝团和群聊? 没有经过当地武装部当武警的人国家军队承认吗 要走兵时市武装部发现我有点小毛病拉着我去查体我可不可以拒绝不去_百... 我举报了武装部会是什么后果 如何海外购物? 我国对于海外代购的有关规定有哪些 授权行货和海外购有什么区别 海淘难不难啊?怎么才能学会海外购物? 复制的验证码怎么粘贴? 海外大量代购合法吗 苹果手机短信收到验证码为什么不能直接粘贴了 海外代购手柄为什么便宜 在海外代购手机 孕妇梦见一条很温顺的大蛇一起睡 海淘和海外代购的区别(详细点) 梦见大蛇是胎梦吗 女人 海外代购者囤货反被“割韭菜”,是不是咎由自取? 聚美优品高成本力推海外购 手中10亿元能烧多久 孕妇梦到巨大的蛇预示着什么 网投365取款通道维护不让取款怎么办? 如何戒色?性瘾症 太垃圾了。根本就不能提现,提现就显示提现通道维护中,这就是一个骗子软件,是吧? 如果性瘾犯起来怎么办? 怎么会引起性瘾的? 面试时被问到spring是怎么控制事务的 面试题:Spring中IOC和DI的含义。应该怎么答 被执行人多久变成失信执行人? 面试官要我介绍一下spring,我该如何比较全面的回答 spring ioc和aop的原理是什么? 梦见自己生病没人管 spring中Ioc和Aop的使用? 女人梦见自己生病在医院,但是亲人都不在身边怎么回事? spring框架的核心概念:IoC和AOP到底有什么用? 面试题,spring原理、核心分别是什么,几句话概括 有什么好一点的学法律的微信公众号推荐,高质量能学到东西的那种,不要打广告的? 陕西省岚皋县《岚皋》用拼音怎么念? 有什么好的微信公众号推荐,要质量很高,不是打广告的那种? 岚皋两个字怎么读? 目前有哪些高质量、有思想的微信公众号推荐? 苹果手机什么锁住app不被清理? 我想在网上交养老金? 安康岚皋县的拼音怎么读 岚皋县在哪里? 我的家乡岚皋为什么叫岚皋是什么来历