ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Spring中的ioc和aop有什么作用?为什么要用ioc和aop?面试中多次被问到,求一个详细 清晰的解答

2020-03-23 13:54:27  阅读:278  来源: 互联网

标签:spring Spring 老李 织入 切面 aop ioc


转载地址:https://zhidao.baidu.com/question/305818574.html

 

我来说说我的理解:
面试的时候,尽量不要照本宣科,这样给面试官的印象是很差的。用自己的话理解是最好的。我先来将两个例子:
ioc,控制反转,这个指的就是我们获取对象的方式进行反转了,改变了。在使用spring之前是需要手动new出来的,是我们主动获取的。使用spring之后,是将这个获取的过程交给spring来管理,我们只需要告诉spring你需要什么就行了,它就会把东西给你。比如:在没有电商的时候,我们去上街买东西,需要考虑到这东西有没有,价钱多少,怎么搬回来,去有多远……等等无数个和主要的业务逻辑(买东西)无关的问题。这样就会扰乱主业务逻辑。当我们有了电商平台后,买东西时只需要两步。注册账号(装载bean),告诉电商你要的东西名字(通过名字获取Bean),然后就可以在门口收到东西了。这就是ioc。
aop,面向切面。在谈这个之前需要了解几个词:切面,切入点,织入,目标对象,通知。
我先解释下名字的意思,再讲故事。
切面:就是你要准备增强的那些方法。
切入点:就是具体织入的方法,定义了地点
织入:动词,就是将切面织入的过层
目标对象:被增强的类
通知:就是什么时候增强,定义了时间
好了,了解清楚上面的几个词的意思后,再听故事就容易多了。
aop的功能就是用来增强,在执行主业务的通知也顺带执行其他业务。如:老李上街办点事儿,走啊走,走到了老王家门前(切入点),老王看见老李问:去哪啊!

老李:上街办点事儿(目标类)
老王:那帮我顺便把这封信投到邮筒里吧。(切面),等到10点的时候邮局开门了去柜台投。(通知)
老李:好嘞。然后老李接过信。(织入)
老李继续走啊走,继续上街办事(增强后的目标类)。办完事后老李回家了。
以上就是aop。aop一般用来处理权限控制,日志记录,加载事务等非主要业务逻辑的事情。底层是采用cglib和jdk的动态代理实现的。
以上例子可能会有点不恰当,如有大神,望指点修正,谢谢!  

标签:spring,Spring,老李,织入,切面,aop,ioc
来源: https://www.cnblogs.com/lidar/p/12551759.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有