IOC、AOP思想的理解

1 篇文章 0 订阅
订阅专栏

什么是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(面向切面编程),是将逻辑代码和横切代码分开,降低了耦合性。

IOCAOP
iPwisdom的博客
12-09 1140
众所周知,Spring拥有两大特性:IoCAOPIoC,英文全称Inversion of Control,意为控制反转。AOP,英文全称Aspect-Oriented Programming,意为面向切面编程。 Spring核心容器的主要组件是Bean工厂(BeanFactory),Bean工厂使用控制反转(IoC)模式来降低程序代码之间的耦合度,并提供了面向切面编程(AOP)的实现。 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面编程(AOP)的容器框架。 下面,我们简要说明下这两大
IOCAOP概述
qq_42682991的博客
12-12 367
DI(依赖注入):容器知道哪个组件(类)运行的时候,需要注入另一个组件(类);容器通过反射的形式,将容器中准备好的对象注入(利用反射给对象赋值)。 只要是容器管理的组件,都能使用容器提供的强大功能。 ...
SpringAOPIOC是什么?
qq_43582619的博客
01-24 1万+
1.AOP(Aspect Oriented Programming) 也叫做------面向切面编程。是一种通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP采取横向抽取机制,取代了传统纵向继承体系重复性代码(性能监视、事务管理、安全检查、缓存)。AOP面向方面编程基于IoC,是对OOP的有益补充。 AOP利用一种称为“横切”的技术,剖解开封装的对象内部,并将那些影响了 多个类的公共行为封装到一个可重用模块,并将其名为“Aspect”,即方面。所谓“方面”,简单地说,就是将那些..
深入理解Spring两大特性:IoCAOP
热门推荐
null
02-14 9万+
众所周知,Spring拥有两大特性:IoCAOP。。Spring核心容器的主要组件是Bean工厂(BeanFactory),Bean工厂使用控制反转(IoC)模式来降低程序代码之间的耦合度,并提供了面向切面编程(AOP)的实现。简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面编程(AOP)的容器框架。下面,我们简要说明下这两大特性。
Spring中的IOCAOP是什么意思?
weixin_45704311的博客
04-20 1万+
(1) Spring是什么? IOC(控制反转)和AOP(面向方面编程)作为Spring框架的两个核心,很好地实现了解耦合。所以,简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 spring的基本框架主要包含六大模块:DAO、ORM、AOP、JEE、WEB、CORE Spring DAO:Spring提供了对JDBC的操作支持:JdbcTemplate模板工具类 。 Spring ORM:Spring可以与ORM框架整合。例如Spring整...
IOC(DI)与AOP概念的理解
05-25
"IOC(DI)与AOP概念的理解" IOC(Inversion of Control,控制反转)和DI(Dependency Injection,依赖注入)是软件设计中两个重要的概念。控制反转的意思是依赖关系的获取方式被反转了。所谓依赖,从程序的角度看,...
java面试题
04-27
spring使用AOP面向切面的思想进行事务管理的。 spring和Hibernate继承后,定义事务管理特性的时候查询为什么要定义为read-only? 答:因为添加、删除和更新都涉及到了数据库的修改,而查询并未涉及到数据库修改,...
spring详细图解
04-05
详细说明spring功能及开发流程,开发思想!帮助你理解学习spring开发步骤!
Spring基础与快速入门
07-08
3 IOC:控制反转,谓之“依赖关系的转移”,如果以前都是依赖于实现,那么现在反转为依赖于抽象吧,其实它的核心思想就是要面向接口编程,至于何谓接口何谓抽象,以及它们的好处,多看看设计模式吧,这里就不费口舌...
Spring框架系列(2) - Spring简单例子引入Spring要点.doc
07-13
本文主要承接上文,向您展示 Spring Framework 组件的典型应用场景和基于这个场景设计出的简单案例,并以此引出 Spring 的核心要点,比如 IOCAOP 等。在此基础上还引入了不同的配置方式,如 XML、Java 配置和...
什么是IOC和什么是AOP
DLNU_HT的成长之路
07-17 5万+
一、IOC 首先:IOC(Inverse of Contro)控制反转,有时候也被称为DI依赖注入,它是一种降低对象耦合关系的一种设计思想。  1.概念引入:       1.1一般而言,在开发中使用分层体系结构,都是上层调用下层的接口,上层依赖下层的执行,这就使得调用者依赖被调用者。所以现在调用者和被调用者之间就错在紧密得联系,假如现在一方要进行变动,那么就会导致程序出现较大得变动,显然这...
spring IOCAOP
qq_40058686的博客
01-30 364
spring是什么? spring是一个轻量级的iocaop容器框架 常见的配置方式:基于XML配置,基于注解的配置,基于java的配置 spring的优点? 1)spring属于低侵入式设计,对代码的污染极低 2)spring的DI机制将对象之间的依赖关系交由框架处理,降低组件的耦合性 3)spring提供了AOP技术,支持将一些通用任务集中管理,从而得到更好的复用 4)s...
以实战深入理解IOCAOP思想
Yungang_Young的博客
05-26 430
文章目录一、 ioc1.ioc思想2.使用配置文件实现ioc 一、 ioc 1.ioc思想 将对象的创建交由Spring框架进行管理,这种将传统对象的创建流程变为框架创建和管理的思想,叫做控制反转。 原本创建对象的方式,是通过new由程序控制的。 写一个userDao接口,用于去数据库查询用户信息 public interface UserDao { void getUser(); } 由于项目数据库不一样,所以实现类有所区别,假设有SQL和MongoDB的实现(MongoDB略)。 public
1——从IOP思想开始
ypandam的博客
04-14 1376
文章目录1 原则1——遵循 IPO思想2 原则2——友好的UI1.1 从printf输出开始1.1.1 理解为什么要这么写printf。 1 原则1——遵循 IPO思想 IPO,即:Input - Process - Outpu 一个再简单的问题,都需要先分析它的输入、处理、和输出。 输入方式: 键盘输入、文件输入、扫描仪输入… 处理: 那就是具体问题具体分析,就是我们说的算法罗 输出:显示器输出、文件输出、文本输出、图形输出… 既然是写给C语言的初学者,那么,我们就从最简单的键盘输入、显示器输出着手。
SpringBoot实现AOPIOC的原理
m0_62031104的博客
07-05 3388
本文主要是通过代码实现Spring Boot中的IOCAOP配置。这里的AOPIOC是属于Spring容器框架的范畴。和SpringBoot关系不大,因为Spring Boot的初中是整合简化了SpringSpring MVC的开发。1、概念扩展:在Spring&Spring中我们式如何注册Bean的? 1、基于XML的配置方式;打个比方: 假如使用Spring基于XML的配置的话,开发的基本流程就是: Java Bean实体编写——>XML(配置Bean)。 ...
IOCAOP思想
m0_56255776的博客
03-31 94
IOCAOP思想
设计模式--IOC(DI)与AOP思想涉及的模式
sevensundark的专栏
02-16 1745
这几天简单了解学习了Spring框架,其中的IOC(DI)与AOP的特性自然是其精髓所在,正好也在学习设计模式,结合设计模式理解了一下 1.IOC(DI)依赖注入--State模式           依赖注入是什么?首先看一个例子,工程中业务层类(Business)需要调用底层打印类(RealWriter)来完成自己的功能,关系图如下: Business类的save
IOC AOP 设计模式
weixin_30624825的博客
04-28 213
IOC AOP 不是什么技术而是一种设计模式 学习 IOC AOP 其实是在学习一种思想。 1.IOC   IOC其实是将对象的创建和获取提取到外部。由外部IOC容器提供需要的组件。 看下面代码: public class Girl { //外部包办直接传入boy类 public void kiss3(Boy boy) ...
spring iocaop理解
最新发布
06-06
Spring IOC(Inversion of Control,控制反转)是一种设计模式,它将对象的创建和依赖关系的管理从应用程序代码中解耦出来,由Spring容器负责管理。通过IOC容器,开发人员可以将对象之间的依赖关系定义在配置文件中,而不是在代码中硬编码。这样,应用程序代码就不需要关心对象的创建和依赖关系,降低了代码的耦合度,提高了代码的可维护性和可扩展性。 Spring AOP(Aspect Oriented Programming,面向切面编程)是一种编程思想,它通过将系统功能分为核心业务逻辑和横切逻辑(如日志、安全、事务等)两部分来实现系统的模块化。AOP通过在系统运行时动态地将横切逻辑织入到核心业务逻辑中,从而实现系统的功能增强和代码复用。Spring AOP通过使用代理模式和动态代理技术,实现了对切面的支持,开发人员可以通过定义切面和连接点,将横切逻辑织入到核心业务逻辑中。

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • FFmepg+nginx-rtmp+video.js实现海康威视摄像头实时监控 3477
  • IOC、AOP思想的理解 393
  • Java基础3:使用Idea运行第一个Java程序Hello World 393
  • Mysql5.7安装(Windows压缩版) 305
  • Java基础2:Java IDE 227

分类专栏

  • java项目相关源码 1篇
  • Java基础 3篇
  • Nginx 3篇
  • SpringBoot 1篇
  • Shiro学习 1篇

最新评论

  • FFmepg+nginx-rtmp+video.js实现海康威视摄像头实时监控

    墨ゞ: 我很久没用这个了,没去研究过表情包

  • FFmepg+nginx-rtmp+video.js实现海康威视摄像头实时监控

    红豆千年: 我遇到一个比较严重的问题,播放流的时候网页占用内存一直在增长,有没有定时释放浏览器内存的函数

  • FFmepg+nginx-rtmp+video.js实现海康威视摄像头实时监控

    Riverun.: 在video.js中配置source部分,将rtmp流字符串填到这里 请问这一步是怎么操作

  • FFmepg+nginx-rtmp+video.js实现海康威视摄像头实时监控

    了凡啊: 可以的兄弟

  • FFmepg+nginx-rtmp+video.js实现海康威视摄像头实时监控

    loveulb: 你好,咨询一下,我需要将监控的内容通过nginx保存在电脑上,是否可以通过你这个教程的1、2步骤实现?

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • Java基础3:使用Idea运行第一个Java程序Hello World
  • Java基础2:Java IDE
  • Java基础1:Jdk的下载与安装
2021年1篇
2020年4篇
2019年9篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

深圳SEO优化公司滨州模板推广多少钱常州英文网站建设公司安康网站seo优化公司坂田如何制作网站哪家好保定网站推广系统哪家好林芝外贸网站制作推荐观澜网页设计多少钱石家庄网站优化按天扣费报价福田seo排名价格通辽网站定制价格贺州营销网站推荐同乐百搜标王推荐哈密网站制作设计多少钱鹤岗百度竞价包年推广南阳网络推广推荐三亚网站搜索优化双龙企业网站建设多少钱迪庆外贸网站建设报价衡阳网页制作推荐岳阳优化抚州建站多少钱坂田百度网站优化排名公司铜陵网站优化按天计费同乐关键词排名推荐玉树网站设计模板推荐广元SEO按天收费推荐凉山网站优化按天扣费多少钱阜新关键词按天扣费烟台网站开发多少钱永州关键词按天计费价格歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化