DI:Dependancy Injection(依赖注⼊) 面试官:IoC和DI的区别我:我觉得 IOC和DI描述的是同⼀件事情,只不过⻆度不⼀样罢了。 2 Aop 2.1 什么是AOP? AOP: Aspect oriented Programming ⾯向切⾯编程/⾯向⽅⾯编程 面试官:什么是AOP?我:要说Aop,得先从OOP说起,OOP三大特征:封装,继承,多态。oop是...
答:首先spring是一个开放源代码的设计层面框架,它的核心包括 IOC 和 AOP 。其中 IOC 是控制反转,让一个对象不用 new 就可以创建了,它利用的是Java里的反射,反射其实就是运行时动态的创建、调用对象。另外就是 AOP 时面向切面编程,基于动态代理,使用 JDK 的代理去创建代理对象。 问:spring的怎么实现的,及设计...
ioc思想基于ioc容器完成,ioc容器底层就是对象工厂 spring提供IOC容器实现的两种方式(两个接口) BeanFactory 是IOC容器的基本实现,spring内部使用的接口 * 加载配置文件的时候不会创建对象,在使用时才去创建对象 ApplicationContext : 是BeanFactory接口的子接口,提供更多更强大的功能 * 加载配置文件时就会创建对象 ioc的be...
静态AOP 实现, AOP 框架在编译阶段对程序源代码进行修改,生成了静态的 AOP 代理类(生成的 *.class 文件已经被改掉了,需要使用特定的编译器),比如 AspectJ。 动态AOP 实现, AOP 框架在运行阶段对动态生成代理对象(在内存中以 JDK 动态代理,或 CGlib 动态地生成 AOP 代理类),如 SpringAOP。 AOP 术语 通知(Advi...
候选者:嗯嗯,IOC和AOP是Spring非常核心的知识点 候选者:我就先来讲讲Spring IOC?面试官:嗯 候选...
对于Spring,核心就是IOC容器,这个容器说白了就是把你放在里面的对象(Bean)进行统一管理,你不用考虑对象如何创建如何销毁,从这方面来说,所谓的控制反转就是获取对象的方式被反转了。既然你都把对象交给人家Spring管理了,那你需要的时候不得给人家要呀。这就是依赖注入(DI)!再想下,我们在传入一个参数的...
1、AOP 1.1、面向切面编程,可分为静态代理和动态代理 1.2、3个实现 AspectJ:静态代理,我们在编写一段独立业务代码时可以使用aspectj将逻辑加入 业务方法中(比如常用的操作日志记录),在编译后我们的class文件会 多出一段代码,这段代码就是aspectj在编译时增加的aop代码。这种做法可以称为静态代理 ...
Spring AOP 就是基于动态代理的,如果要代理的对象,实现了某个接口,那么 Spring AOP 会使用JDK Proxy...
候选者:嗯嗯,IOC和AOP是Spring非常核心的知识点 候选者:我就先来讲讲Spring IOC? 面试官:嗯 候选者:我个人理解下:Spring IOC 解决的是对象管理和对象依赖的问题。 候选者:本来是我们自己手动new出来的对象,现在则把对象交给Spring的IOC容器管理 候选者:IOC容器可以理解为一个对象工厂,我们都把该对象交给工厂,工厂...
理解 Spring AOP 与 AspectJ 的区别有助于在项目中做出合适的选择。Spring AOP 是基于代理机制的运行时增强,而 AspectJ 则是基于字节码操作的编译时增强,后者功能更加强大,但在性能上可能稍有劣势。总的来说,在面试时回答关于 Spring 的 IoC 和 AOP 原理时,可以强调这些技术如何简化依赖关系管理、...