IOC、AOP思想的理解

什么是IOC

IOC,中文名为控制反转,是将Java的bean对象存储在容器中,当需要使用时,通过名字获取该对象。而不是通过new关键字去创建。

下面用一张图来说明普通场景和IOC场景的Bean对象调用的大致过程
在这里插入图片描述
普通场景不用说,大家都理解。IOC这种场景A如何获取到B呢?那这就牵出了一个我们熟悉的另一个词DI(依赖注入)

IOC和DI说的其实是同一个事情,只是站在的角度不同
IOC站在对象的角度,将对象的实例化反转到容器中。
DI站在容器的角度,当对象要被调用时通过依赖注入的方式将对象注入到所依赖的地方

那么使用IOC有什么好处呢?
解耦,便于维护和修改。
举个例子:
我们项目中有一个接口UserService,它当前有一个实现类UserServiceImpl01,我们在UserController中使用这个实现类。

普通场景 我们在Controller中直接实例化 UserService userService = new UserServiceImpl01();
ioc容器 我们在Controller中使用UserService userService;并打上@AutoWired注解。在Service的实现类上打上@Service注解即可

现在出现新的需求,开发了UserServiceImpl02(),需要所有的Service接口去实现UserServiceImpl02()。

普通场景 我们需要修改代码UserService userService = new UserServiceImpl02();
ioc容器 将Service实现类的注解@Service打在正确的类上就可以完成代码的修改,是不是很方便。
当依赖UserService的类越来越多时,ioc的优势体现的也愈来愈明显。

什么是AOP


AOP,中文译为面向切面编程,主要表现为将业务代码和监测代码分开。

举个例子:如下图所示,当不使用aop思想时,业务逻辑和横切逻辑在一起。
这样会使类的代码量增加,不利于维护。同时因为业务逻辑和横切逻辑耦合在一起,如果需要改变横切逻辑时,工作量较大
在这里插入图片描述
再用代码举个例:
不使用AOP时代码是这样的
在这里插入图片描述
使用AOP时代码是这样的,是不是清爽了很多?
在这里插入图片描述

总结:
IOC(控制反转)是一种思想,是Spring容器的核心思想,我们将对象的创建过程交给了Spring容器,这样就无需关注对象的创建、销毁等。同时降低了代码的耦合程度

AOP(面向切面编程),是将逻辑代码和横切代码分开,降低了耦合性。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值