tnblog
首页
视频
资源
登录
什么时候才能领悟,取之越多失之越多
排名
5
文章
229
粉丝
15
评论
7
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

IOC控制反转的形象比喻。AOP形象比喻

5919人阅读 2022/3/27 20:59 总访问:1165766 评论:0 收藏:0 手机
分类: 架构

IOC控制反转的形象比喻

通常情况下,假如你有一天在家里口渴了,要喝水,那么你可以到你小区的小卖部去,告诉他们,你需要一瓶水,然后小卖部给你一瓶水!这本来没有太大问题,关键是如果小卖部很远,那么你必须知道:从你家如何到小卖部;小卖部里是否有你需要的水;你还要考虑是否开着车去;等等等等,也许有太多的问题要考虑了。也就是说,为了一瓶水,你还可能需要依赖于车等等这些交通工具或别的工具,问题是不是变得复杂了?那么如何解决这个问题呢?

解决这个问题的方法很简单:小卖部提供送货上门服务,凡是小卖部的会员,你只要告知小卖部你需要什么,小卖部将主动把货物给你送上门来!这样一来,你只需要做两件事情,你就可以活得更加轻松自在:

第一:向小卖部注册为会员。

第二:告诉小卖部你需要什么。

这和Spring的做法很类似!Spring就是小卖部,你就是A对象,水就是B对象

第一:在Spring中声明一个类:A

第二:告诉Spring,A需要B

假设A是UserAction类,而B是UserService类

AOP形象比喻

面向切面编程的目标就是分离关注点。什么是关注点呢?就是你要做的事,就是关注点。假如你是个公子哥,没啥人生目标,天天就是衣来伸手,饭来张口,整天只知道玩一件事!那么,每天你一睁眼,就光想着吃完饭就去玩(你必须要做的事),但是在玩之前,你还需要穿衣服、穿鞋子、叠好被子、做饭等等等等事情,这些事情就是你的关注点,但是你只想吃饭然后玩,那么怎么办呢?这些事情通通交给别人去干。在你走到饭桌之前,有一个专门的仆人A帮你穿衣服,仆人B帮你穿鞋子,仆人C帮你叠好被子,仆人C帮你做饭,然后你就开始吃饭、去玩(这就是你一天的正事),你干完你的正事之后,回来,然后一系列仆人又开始帮你干这个干那个,然后一天就结束了!

AOP的好处就是你只需要干你的正事,其它事情别人帮你干。也许有一天,你想裸奔,不想穿衣服,那么你把仆人A解雇就是了!也许有一天,出门之前你还想带点钱,那么你再雇一个仆人D专门帮你干取钱的活!这就是AOP。每个人各司其职,灵活组合,达到一种可配置的、可插拔的程序结构。

从Spring的角度看,AOP最大的用途就在于提供了事务管理的能力。事务管理就是一个关注点,你的正事就是去访问数据库,而你不想管事务(太烦),所以,Spring在你访问数据库之前,自动帮你开启事务,当你访问数据库结束之后,自动帮你提交/回滚事务!

原文:https://blog.csdn.net/eson_15/article/details/51090040


欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)

评价

IOC(控制反转)与DI(依赖注入)

IOC与DI都是为了降低类与类之间的耦合度。耦合性耦合性也叫块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量...

IOC (控制反转) Dl (依赖注入)

IOC:控制反转DI:注入依赖讲解:类与类之间的耦合性我们之间都是用NEW关键之直接实例化,这样耦合性很高,但是修改很麻烦今...

IOC控制反转和DI依赖注入

IOC控制反转 概念:把类与类的控制器交给容器就是控制反转 使用控制反转一般步骤: (1) 准备一个容器(创建一个类) ...

AOP和IOC的区别

二者没有联系。ioc是控制反转,aop是面向事务。 IOC就是一个生产和管理bean的容器就行了,原来需要在调用类中new的东西,...

IOC简介 01

耦合与内聚耦合(Coupling):代码书写过程中所使用技术的结合紧密度,用于衡量软件中各个模块之间的互联程度内聚(Cohesion):...

IOC入门案例 02

一、1.导入spring坐标(5.1.9.release)1.1、先创建maven工程。1.2、导入spring坐标<dependencies> <dependency&g...

IOC配置-bean的基本配置 03

一、二、scope属性名称: scope类型:属性归属: bean标签作用:定义bean的作用范围格式:<bean scope=“singleton">...

IOC配置-依赖注入概念(DI)04

一、依赖注入概念(DI)loC (Inversion Of Control)控制翻转,Spring反向控制应用程序所需要使用的外部资源Dl (Dependency ...

IOC配置-集合注入 05

集合类型数据注入名称: array,list,set,map, props类型:标签归属: property标签或constructor-arg标签作用:注入集合数据类...

IOC配置-p命名空间的引入与使用 06

一、1、在spring官网获取配置文件的p标签1.1根据IoC入门案例 02的3.建立spring配置文件可以找到如下页面1.2复制配置文件的...

IOC配置-读取properties文件信息 08

案例1、在maven工程导入spring坐标2、dao层的内容与结构接口实现类3、server层的内容与结构4、创建properties文件5、配置文...

IOC配置-import导入配置文件 09

1、Spring容器加载多个配置文件(了解)new classPathxmlApplicationcontext ( "config1.xml " , "config2....

IOC配置-ApplicationContext对象层次结构 10

1、层级结构2、各接口、类的作用3、BeanFactory 使用方式

IOC配置-第三方bean的配置方式 11

1、在pom文件加上阿里的资源坐标:<dependency> <groupId>com.alibaba</groupId> <artifactId>d...