面试中 spring的AOP、IOC、DI该如何解答

1.希望不要照搬网上的答案,有自己的认知与总结
2.最好简洁明了但是要说的稍微深入些,因为是在口头说话,太简单会觉得在敷衍
3.最好举例子说到用在什么地方的,能一听就知道作用

14个回答

总的来说:
ioc就是控制翻转或是依赖注入。通俗的讲就是如果在什么地方需要一个对象,你自己不用去通过new 生成你需要的对象,而是通过spring的bean工厂为你长生这样一个对象。
aop就是面向切面的编程。比如说你每做一次对数据库操作,都要生成一句日志。如果,你对数据库的操作有很多类,那你每一类中都要写关于日志的方法。但是如果你用aop,那么你可以写一个方法,在这个方法中有关于数据库操作的方法,每一次调用这个方法的时候,就加上生成日志的操作。
通过DI(Dependency Injection,依赖注入)来实现的。比如对象A需要操作数据库,以前我们总是要在A中自己编写代码来获得一个Connection对象,有了 spring我们就只需要告诉spring,A中需要一个Connection,至于这个Connection怎么构造,何时构造,A不需要知道。在系统运行时,spring会在适当的时候制造一个Connection,然后像打针一样,注射到A当中,这样就完成了对各个对象之间关系的控制。A需要依赖 Connection才能正常运行,而这个Connection是由spring注入到A中的,依赖注入的名字就这么来的。
具体还是得根据个人的理解去学习。

AOP 官方的解释是面向切面编程,实际上 AOP 的应用是指在不改动源代码的情况下,灵活添加业务逻辑实现.
IOC 比较好理解,就是对象的控制器交出去给 spring 来管理.大幅降低代码之间的耦合度.
DI 就是将spring管理的对象通过 AutoWrite 注解注入到我们需要的地方.注入过来的对象是由spring管理的.

AOP:面向切面编程,动态封装一些可重用(与业务无关)的代码;
IOC: 控制反转,DI:依赖注入,这两者其实是同一概念,具体的讲:在某个地方需要一个对象的时候,在传统的程序设计过程中,通常由调用者来创建一个对象的。但在spring中,创建对象的工作不再由调用者来完成,因此称为控制反转。创建对象的工作由spring来完成,然后注入调用者,因此也称为依赖注入。

IOC控制反转,就是将xml文件配置的bean利用反射实例化对象,DI依赖注入可以通过构造器注入和setter注入,aop在切入点实现指定2功能

AOP: 举个例子: 比如一个项目中存在N多个save()方法, 如果,现在项目有一个需求,比如在保存完成之前后者之后,需要记录日志操作,如果不用AOP,你需要找到每个类里面的
save方法,然后添加响应的代码,费时费力并且后期也不好维护,如果引用AOP技术,只需要自定义一个方法,在spring配置文件中将该方法配置好,当每次调用完原先的save方法时,都会去执行你写的保存日志方法。
IOC:这个顾名思义就是将对象的创建交给容器,例如:A类中调用B类的方法,我们会在A类中new B()类对象,这样A类和B类的耦合程度较高,不便于解耦,因而IOC派上用场了,在A类中如果我们要调用B类中的方法,B类的对象我们可以使用@RESOURCE注解等方式注入进来,然后在A类中直接使用该对象调用响应的B类方法,从而达到了解耦的目的。
DI:依赖注入,列举常用的方式,一个WEB项目中,前端JSP的页面中的form表单,例如学生的相关信息,我们只需要将学生表生成实体,提供set(),get()方法,jsp页面的input标签name属性指定和bean中定义的变量一样,发送请求,后台方法就可以直接用该实体进行接收,这就是以一种DI。

可以打个比喻,编程来源生活,这样你记得会比较清而且会比较深刻

按你的理解去回答,如果你真的学的还可以,这个问题应该不是很难,要是答不出来,建议还是好好学一下

IOC:控制翻转,需要的时候直接从容器中取,而不管容器是怎么给你的
AOP:面向切面的编程,底层原理是动态代理

aop你可以举一些列子比如事物,还有格式转化,日期转化之类的
ioc和di就是两个相反方向的,比如我控制你,反过来就是你被我控制.

下载一份面试宝典看看

共14条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
spring的IOC,DI,AOP理解
IOC即控制反转,是一种设计思想,由spring去管理javaBean,标记被spring管理的类都会再IOC容器中登记,需要使用时告诉spring你需要的使用的是哪个对象,通过byName或者byType的方式,spring就会在你需要的时候提供给你。springIoc容器相当于一个中介,当你想要什么房子的时候不需要满大街去找房子,只需要告诉中介你需要什么房子,中介就给你一个房子。 spring...
Spring的IOC,AOP,DI介绍
Spring IOC IOC(Inversion of Control,控制反转)意思:是控件反转也就是由容器控制程序之间的关系,把控件权交给了外部容器,从程序代码直接操控,到控制权交给外部容器管理,控制权的转移是所谓反转 IOC的三种注入方式: 接口注入:如果采用接口注入一个Bean,那么通过注入的Bean就必须要实现这个接口(这很霸道对不对,我想实现什么接口,还需要规定)... set方...
简述Spring中DI、IoC和AOP的含义
简述Spring中DI、IoC和AOP的含义,如果可以举出适当的例子!
理解Spring的AOP和Ioc/DI就这么简单
本文以通俗易懂的例子阐述了什么是AOP、Ioc、DI,相信读者看了之后会很容易明白 AOP —— Asepct-Orentid-Programming,面向切面编程 那么我们该怎么理解AOP呢?我们可以通过OOP —— 面向对象编程来进行比较分析 相信大家对于OOP的理解不难,就以人(people)来说,我们就可以把它看做一类对象,people有身高、体重、年龄等属性,也有跑步、吃饭、睡觉、娱乐等行为,把这些属于people的属性和行为封装在people类中,然后以统一调
关于spring的AOP ,IOC,DI的理解
帮助初学者理解spring框架,有助于提高代码能力java.sql.SQLException: Duplicate entry '2' for key 'PRIMARY' Query: insert into transaction values(?,?,?,?,?) Parameters: [2, 6212999999999, 转出, 6000000, Wed May 17 07:51:00 CST 2017]
Spring基础入门之Ioc、DI、AOP
现在spring框架非常流行,主要就是因为它的Ioc、DI、AOP特性,但是之前一直不清楚这三个东西都是干啥的,今天通过度娘挨着查一遍,记录下来,方便自己回顾。记性不好的人简直了,感觉记不住就找不到工作了。。。。 1. IoC控制反转 所谓控制反转,就是把原先我们代码里面需要实现的对象创建、依赖的代码,反转给容器来帮忙实现。也就是说,以前我们需要创建和销毁的对象,现在由spring来帮我们做,
Spring核心知识(IOC/DI、AOP)
Spring核心知识 Ioc/Di 1、概念 容器反转资源的获取方向,主动地管理各个组件的生命周期以及组件之间的依赖关系。 2、实现 实际上容器主要使用了用反射技术。 Map beanMap = new ConcurrentHashMap beanMap.put( beanDefinition.getId(), Class.forName(
Spring之AOP,DI(依赖注入),IOC(控制反转)
目录 1.DI(依赖注入),IOC(控制反转) 2.AOP 2.1 JAVA 代理实现 3.AspectJ 依赖注入和控制反转是对同一件事情的不同描述,从某个方面讲,就是它们描述的角度不同。依赖注入是从应用程序的角度在描述,可以把依赖注入描述完整点:应用程序依赖容器创建并注入它所需要的外部资源;而控制反转是从容器的角度在描述,描述完整点:容器控制应用程序,由容器反向的向应用程序注入应用程...
浅谈Spring概念(DI,IoC,AOP)
  Spring重要的思想:IoC&DI: 控制反转:将对象的创建权交给了spring 依赖注入:需要有IOC的环境,spring创建这个类的过程中,将这个类的依赖属性注入。就比如EE开发,有三层,分别是Action,Service,DAO。 action是管理,是总管,是分配任务的。 service是事务层,是进行逻辑操作的。 DAO是封装增删改查的。 那很明显,servi...
spring IOC DI AOP 面试 时通俗表达
Spring  IOC 指控制反转。可以理解为,类的控制权移交给spring容器来完成,由spring控制生成(初始化)、调用等动作,类的(bean的)的控制权是通过set、构造函数、强制赋值这些方式交到spring容器的。 说到IOC我们可以联想到常用的一些spring注解@Autowrites @Resource,当需要调用某个类时,spring会从spring容器中根据拉取出相应的实例。...
面试中怎么答Spring,IOC,AOP
现在开始将会把我面试中遇到的问题做一个总结每一条问题作为一篇简短的博客叙述. 1.你对spring的理解是什么? 答: spring: 1)开源框架 2)IoC(控制反转),将类的创建和依赖关系写在配置文件里,由配置文件注入,实现了松耦合 3)AOP 将安全,事务等于程序逻辑相对独立的功能抽取出来,利用spring的配置文件将这些功能插进去,实现了按照方面编程,提高了复用性
Spring中的 Ioc 和 AOP???
关于Spring中的Ioc和AOP,不管是了解还是精通,希望大家可以谈一谈,我知道的不是很清楚啊,只会用,它的内部机制不是很清楚啊!!!!!rn帮忙啦!!!!
spring中DI和IOC的异同
我是spring的菜鸟,本人有一问题觉得很是奇怪,在spring的书上,可以看到,书中把DI和IOC说成是一样的了,我想知道DI和IOC的异同。
Spring中IoC和DI的理解
通常情况下,Spring是学习者学完se部分马上就要面对的一个轻量级框架。实际上,Spring框架功能很强大,而IoC和AOP是两个比较重要的知识点。经过我一段时间学习感到IoC要比AOP容易理解。今天先总结一下自己学习IoC的一些感受。IoC一般是我们在学习Spring框架的遇到的第一个知识点,中文叫控制反转。通俗点讲,就是先前由开发者自己创建对象,现在由Spring容器来创建对象,管理对象的生...
spring中DI和IOC的概念
DI即dependency injection(依赖注入) IOC即inversion of control(控制反转)       对于这两个概念的理解可以使用这样的一个例子,类A需要调用类B的方法或者属性时,一般情况下,会将类B实例化,之后才能调用。但是使用了spring之后,类B不需要直接在内部对类A进行实例化,而是交给了spring的容器,这样本来类A直接控制类B实例化的控制权发生...
Java面试-Spring IOC(控制反转)和DI(依赖注入)
IOCIoc(Inversion of Control)翻译成中文就是“控制反转”,一个比较晦涩的词语。如果要真正理解这个词语,必须要用过Spring框架才行,因为Spring开启了一种新的编程方式。传统的编程方式: 所有的对象和资源都是由开发人员来控制,由你来决定什么时候new一个对象,什么时候申请资源、使用资源、释放资源。使用Spring框架: 开发人员提供一个清单给Spring,然后对象的整个
IOC(DI)与AOP概念的理解
IOC(DI)与AOP概念的理解
IOC,DI,MVC,AOP思想
1.IoC是什么?    IoC(Inversion of Control)控制反转,IoC是一种新的Java编程模式,目前很多轻量级容器都在广泛使用的模式。  2.IoC解决了什么问题?    在IoC出现以前,组件之间的协调关系是由程序内部代码来控制的,或者说,以前我们使用New关键字来实现两组间之间的依赖关系的。    这种方式就造成了组件之间的互相耦合。IoC(控制反转)就
spring的Ioc和DI的作用
IOC(控制反转):是面向对象编程中的一种设计原则,可以有利减低计算机代码之间的耦合度。 通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。 DI(依赖注入):由容器动态的将某个依赖关系注入到组建之中。依赖注入的目的并非为软件系统带来更多功能,而是为了提升组建重用的频率,并未系统搭建一个灵活、 可扩展的平台。通过依赖注入机制,我们只需通过简单...
spring学习之IOC和DI
前面我们已经讲过了,通过spring提供的IOC容器,用户可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。那么什么是IOC? 什么是IOC IOC全称是Inversion of Control,中文名称是反转控制。其核心思想就是反转资源获取的方向。 传统的资源查找方式要求组件向容器发起请求查找资源,然后作为回应,容器返回资源。而应用了IOC之后,则是容器在组
Spring IOC / DI(工厂模式)
工厂设计模式总结: 核心技术:反射 好处:解耦和 面向接口编程 通过面向接口编程的思想,加载配置文件得到类全限定名,通过反射机制,创建对象。 Spring工厂的初始化时机 需求:tomcat启动就加载Spring工厂 ServletContext的监听器在tomcat启动的时候,就执行。 IOC(Inverse Of Controller 反转控制) 概念: 将对象创建的权利,转义到Spri...
Spring——IOC与DI(二)
1.创建配置文件(通常名称起为applicationContext.xml) 添加依赖: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLS...
spring的ioc和di
<ul><li>n <p>n 本课程着重讲解了n </p>n </li>n <li>n IoC、DI思想、Spring测试框架、bean的实例化、作用域、初始化、生命周期、 nJDK动态代理和原理、CGLIB动态代理和原理、拦截器思想、AOP思想和开发(传统+AspectJ框架)、Spring对持久层技术支持、声明式事务,框架集成;Spring均基于XML配置、注解配置、JavaConfig配置来讲解等。新增新特性的介绍等讲解n </li>n</ul>
IOC/DI与AOP概念的理解
IOC,控制反转的意思,DI是依赖注入        IoC是一个很大的概念,可以用不同的方式来实现。 其主要实现方式有两种: 1.依赖查找(Dependency Lookup):容器提供回调接口和上下文环境给组件。EJB和Apache Avalon都使用这种方式。 2.依赖注入(Dependency Injection):组件不做定位查询,只提供普通的Java方法让容器去决定依赖关系...
Spring 的IOC与DI的认识
一、 1.什么是IOC与DI IOC:控制反转,将对象的创建权反转给了Spring。 DI:依赖注入,前提必须有IOC的环境,Spring管理这个类的时候将类的依赖的属性注入(设置)进来。 二、IOC——控制反转 1.为什么要使用IOC呢? 我们来看代码: 接口: 实现类: 传统使用方式:通过new关键字来创建对象。 这里不难看出,代码之间具有很高的耦合度。如果...
Spring学习之IOC和DI
首先我想明确它们之间的关系: IOC:控制反转,把创建对象的过程交给Spring去管理,自己不做任何关注。 DI:依赖注入,向Bean里的属性进行设值。 DI是不可以自己独立进行工作的,必须要在IOC的基础上完成工作,也可以理解为DI是IOC的一种实现。 什么是IOC? 首先我想谈一下我自己的想法 IOC全名是Inverse Of Control,意思是控制反转,那么这个控制反转到...
Spring概述,IOC,DI
Spring概述及体系介绍 Spring概述 ①Spring是一个开源框架 ②Spring为简化企业级开发而生,使用Spring开发可以将Bean对象,Dao组件对象,Service组件对象等交给Spring容器来管理,这样使得很多复杂的代码在Spring中开发却变得非常的优雅和简洁,有效的降低代码的耦合度,极大的方便项目的后期维护、升级和扩展。 ③Spring是一个IOC(DI)和AOP容器框架...
浅谈spring的Ioc和DI
很久没回来更博了,前阵子琐事多人又比较烦躁,就没过来.今天又空就回来写写的东西,今天打算浅淡一下spring核心技术:(控制反转)IOC和(依赖反转)DI.以个人的经历来看,只要你去面试并且你使用过spring, ,都会问你spring的核心技术,这里就不再一一介绍spring是什么和spring好处了,就谈谈个人对spring核心技术的理解: 一、IOC和DI IOC即控制反转,
Spring的IoC与DI差异
一、IoC     IoC,全称为Inversion of Control,即控制反转。     IoC是依赖倒置原则的一种代码设计思想,把创建对象的权利交给框架,是框架的重要特征。其包括依赖注入(Dependency Injection,简称DI)和依赖查找(Dependency Lookup)。     IoC有两个重点,一是控制,二是反转。容器控制应用程序所需要外部资源的创建和管理,然...
spring的DI和IOC
<img src="https://img-bss.csdn.net/201904231456107460.png" alt="" />
Spring之IOC、DI、@注解
id,在整个ioc容器中bean的标识 class,具体要实例化的哪一个类 scope,范围,作用域 constructor argument,构造器参数 property,成员变量 Autowiring mode,自动装配模式 lazy-initialization mode,懒加载模式 initialization/destruction method,初始化/销毁方法
(一)Spring之IoC和DI
一、什么是IoC         IoC--Invertersion of Control,即“控制反转”,不是一种技术,而是一种设计思想。在Java开发中,IoC意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。如何理解好IoC呢?理解好IoC的关键是要明确“谁控制谁,控制什么,为何是反转(有反转就有正转了),哪些方面反转了”,那我们来深入分析一下: 谁控制谁,控制什么...
spring的IOC,DI基本内容
1.懒加载 理解懒加载: 懒加载是建立在初始化上的,首先要在xml文件中配置Bean时要指定init-method(), 然后这个Bean还是单例的指定scope="singleton"(不指定默认也是单例的).这时候 就会在加载main方法时就会自动的初始化实例化对象,当在&lt;Bean&gt;里指定属性lazy-init("true") 时,就不会在加载时自动实例化对象,这个方式就时懒加载....
spring的IOC和DI的意义
本课程讲解spring、springMVC、struts2、mybatis、hibernate框架,和2019年的微信公众号项目实战
Spring之IOC与DI的不同
IOC:将对象的创建交由Spring管理. DI(Dependency Injection):在对象的创建过程中,把对象依赖的属性注入。 面向对象中对象与对象间的关系: a.依赖class A{ private B b; }A 依赖于b b.继承(is-a) c.聚合:(has-a) 笔记本电脑(A)与鼠标(B)的关系 A存在,B可有可无 d.组合:contains-a 人与
Spring IoC和DI——学习笔记
Spring IoC 笔记,如有错误,望指正。 IoC(控制反转): IoC(Inversion of Control),是一种程序设计思想。 在传统的程序设计中,对象的创建过程发生在其被使用的地方,即哪里需要哪里创建。在这一过程中,就产生了依赖,创建调用该对象,即对该对象产生了依赖,当该对象发生改变时,需要修改所有调用该对象的程序,对象间是高度耦合的。形如: SearchServ...
【Spring学习】IoC与DI
看了两篇讲IoC和DI的文章,实在是讲得太好,有种不知道再怎么写的感觉,终于明白李白为啥说黄鹤楼景色虽好,却因崔颢的题诗在前,无法写诗是啥意思了。两篇文章见下:        Spring的IOC原理[通俗解释一下]        我对IoC/DI的理解        不过,还是尽可能自己也总结一下,毕竟是别人的东西,记得不会太清楚。1.概念       IoC是Inversion of Co
Spring学习笔记——IOC和DI
什么是IOC? 所谓控制反转,是将我们代码里面需要实现的创建对象,以及创建对象所依赖的对象的创建的过程,全部交由容器来进行实现。这样我们就不必使用new关键字来进行创建对象,从而降低了耦合度。   那么什么是DI呢? 2004年,Martin Fowler探讨了同一个问题,既然IOC是控制反转,那么到底“哪些方面的控制被反转了呢?”,经过详细的分析和讨论后,他得出了答案:“获得依赖对象的这...
spring ioc 与 di 配置文件
3.spring中的概念 ioc: 反转控制. 创建对象的方式反转了.从我们自己创建对象,反转给spring(程序)来创建. di: 依赖注入.将必须的属性注入到对象当中.是实现ioc思想必须条件. beanFactory与ApplicationContext Demo.java package cn.itcast.c_injection; import java.util.Collection...
名词解说:IOC和DI,AOP
一、定义IOC:反转资源获取的方向。(传统的资源查找方式要求组件向容器发起请求查找资源作为回应,容器适时的返回资源,应用了IOC后则是,容器主动地将资源推送给它所管理的组件,组件所要做的仅是选择一种合适的方式来接受资源。“查找的被动形式”)DI:IOC的另一种表述方式。组件以一些预先定义好的方式接受来自如容器的资源注入。二、例子举个简单的例子:有两个类:class A{}class B{     ...
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法