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


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

    我来说说我的理解:
    面试的时候,尽量不要照本宣科,这样给面试官的印象是很差的。用自己的话理解是最好的。我先来将两个例子:

    ioc,控制反转,这个指的就是我们获取对象的方式进行反转了,改变了。在使用spring之前是需要手动new出来的,是我们主动获取的。使用spring之后,是将这个获取的过程交给spring来管理,我们只需要告诉spring你需要什么就行了,它就会把东西给你。比如:在没有电商的时候,我们去上街买东西,需要考虑到这东西有没有,价钱多少,怎么搬回来,去有多远……等等无数个和主要的业务逻辑(买东西)无关的问题。这样就会扰乱主业务逻辑。当我们有了电商平台后,买东西时只需要两步。注册账号(装载bean),告诉电商你要的东西名字(通过名字获取Bean),然后就可以在门口收到东西了。这就是ioc。

    aop,面向切面。在谈这个之前需要了解几个词:切面,切入点,织入,目标对象,通知。
    我先解释下名字的意思,再讲故事。
    切面:就是你要准备增强的那些方法。
    切入点:就是具体织入的方法,定义了地点
    织入:动词,就是将切面织入的过层
    目标对象:被增强的类
    通知:就是什么时候增强,定义了时间
    好了,了解清楚上面的几个词的意思后,再听故事就容易多了。
    aop的功能就是用来增强,在执行主业务的通知也顺带执行其他业务。如:老李上街办点事儿,走啊走,走到了老王家门前(切入点),老王看见老李问:去哪啊!

    老李:上街办点事儿(目标类)
    老王:那帮我顺便把这封信投到邮筒里吧。(切面),等到10点的时候邮局开门了去柜台投。(通知)
    老李:好嘞。然后老李接过信。(织入)
    老李继续走啊走,继续上街办事(增强后的目标类)。办完事后老李回家了。
    以上就是aop。aop一般用来处理权限控制,日志记录,加载事务等非主要业务逻辑的事情。底层是采用cglib和jdk的动态代理实现的。
    以上例子可能会有点不恰当,如有大神,望指点修正,谢谢!
     
  • 相关阅读:
    5.21 CSS样式表练习
    5.20 c#验证码练习
    5.20 邮箱注册,及网页嵌套,知识点复习
    5.19 网页注册练习
    5.19练习标签及其 定义
    5.16 兔子生兔子,日期时间练习
    5.15 复习;共5题
    5.11 集合 与 特殊集合
    5.11 集合与特殊集合
    WinForm1
  • 原文地址:https://www.cnblogs.com/lidar/p/12551759.html
Copyright © 2020-2023  润新知