栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

谈一下你对Spring的理解?我……

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

谈一下你对Spring的理解?我……

谈一下你对Spring的理解?我……

文章目录

谈一下你对Spring的理解?我……

1、谈一下你对IOC的理解?2、谈一下你对AOP的理解?3、AOP代理的几种方式?

1、谈一下你对IOC的理解?

先说具体实现:依赖注入(DI):把底层类作为参数传递给上层类,实现上层对下层的“控制”;

IOC理论提出的观点:借助于“第三方”实现具有依赖关系的对象解耦。

引入“第三方”,A、B、C、D这4个对象没有了耦合关系,全部依靠“第三方”,起到“粘合剂”的效果,对象与对象之间失去联系。

没有IOC容器的时候,对象A依赖于B对象,对象A在初始化或者运行到某一点的时候,自己必须主动去创建对象B或者使用已经创建的对象B,无论创建还是使用对象B,控制权都在自己手上。

有IOC容器的时候,对象A与对象B失去了直接联系,对象A运行到需要对象B的时候,IOC容器会主动创建一个对象B注入到对象A需要的地方。

对比看出,对象A获取依赖对象B的过程,由主动行为变成了被动行为,控制权颠倒过来了,这就是“控制反转”。

2、谈一下你对AOP的理解?

AOP(面向切面编程):可以说是对OOP的补充和完善,OOP允许你定义从上到下的关系,但并不适合定义从左到右的关系,如日志功能,日志代码往往书平的散步在所有对象层次中,而与它所散布到对象的核心功能毫无关系。在OOP设计中,它导致了大量代码的重复,而不利于各个模块的重用。

但是,AOP技术利用“横切”的技术,剖解开封装对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块,叫"Aspect",为了把那些与业务无关的,却为业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块间的耦合度,有利于未来的可操作性和可维护性

AOP的形象表达:AOP 代表的是一个横向的关系,如果说“对象”是一个空心的圆柱体,其中封装的是对象的属性和行为;那么面向方面编程的方法,就仿佛一把利刃,将这些空心圆柱体剖开,以获得其内部的消息。而剖开的切面,也就是所谓的“方面”了。然后它又以巧夺天功的妙手将这些剖开的切面复原,不留痕迹。

运用横切技术,AOP把软件系统分为:核心关注点和横切关注点,业务处理的主要流程是核心关注点,与之关系不大的部分是横切关注点(权限认证、日志、事务处理),AOP 的作用在于分离系统中的各种关注点,将核心关注点和横切关注点分离开来!

3、AOP代理的几种方式?

AOP思想的实现一般都是基于代理模式,一般用JDK动态代理模式(只能代理接口不能代理类)

JDK动态代理生成代理类:目标对象的实现类实现了接口CGLIB生成代理类:实现类没有实现接口(对开发者完全透明)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/768331.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号