⾯试题,说说你对springIOC和AOP的理解
在⾯试中,经常会问,说说你对spring IOC和AOP的理解,问题很宽泛,似乎不知道从何说起。
回答思路:1.先⽤通俗易懂的话解释下何为IOC和AOP---------》2.各⾃的实现原理-----------》3.⾃⼰的项⽬中如何使⽤
以下是个⼈的⼀些总结,仅供参考。
1.IOC
spring ioc注解许多应⽤都是通过彼此间的相互合作来实现业务逻辑的,如类A要调⽤类B的⽅法,以前我们都是在类A中,通过⾃⾝new⼀个类B,然后在调⽤类B的⽅法,现在我们把new类B的事情交给spring来做,在我们调⽤的时候,容器会为我们实例化。
2. IOC容器的初始化过程
资源定位,即定义bean的xml-------》载⼊--------》IOC容器注册,注册beanDefinition
IOC容器的初始化过程,⼀般不包含bean的依赖注⼊的实现,在spring IOC设计中,bean的注册和依赖
注⼊是两个过程,,依赖注⼊⼀般发⽣在应⽤第⼀次索取bean的时候,但是也可以在xm中配置,在容器初始化的时候,这个bean就完成了初始化。
3. 三种注⼊⽅式:构造⽅法注⼊,setter注⼊,基于注解的注⼊。我们常⽤的是基于注解的注⼊
4. bean是如何创建--- ⼯⼚模式
5. 数据是如何注⼊-------反射
6.AOP
⾯向切⾯编程,在我们的应⽤中,经常需要做⼀些事情,但是这些事情与核⼼业务⽆关,⽐如,要记录所有update*⽅法的执⾏时间时间,操作⼈等等信息,记录到⽇志,
通过spring的AOP技术,就可以在不修改update*的代码的情况下完成该需求。
7.AOP的实现原理------代理
以下⽂章本⼈觉得可以很好地回答前两个问题,特此转载供读者参考:
IOC的定义及实现原理---反射
AOP的定义实现原理—代理
AOP的应⽤的三种实现⽅式
总结:
IOC:控制反转也叫依赖注⼊,IOC利⽤java反射机制,AOP利⽤代理模式。所谓控制反转是指,本来被调⽤者的实例是有调⽤者来创建的,这样的缺点是耦合性太强,IOC则是统⼀交给spring来管理创建,将对象交给容器管理,你只需要在spring配置⽂件总配置相应的bean,以及设置相关的属性,让spring容器来⽣成类的实例对象以及管理对象。在spring容器启动的时候,spring会把你在配置⽂件中配置的bean都初始化好,然后在你需要调⽤的时候,就把它已经初始化好的那些bean分配给你需要调⽤这些bean的类。
AOP:⾯向切⾯编程。(Aspect-Oriented Programming)
AOP可以说是对OOP的补充和完善。OOP引⼊封装、继承和多态性等概念来建⽴⼀种对象层次结构,⽤以模拟公共⾏为的⼀个集合。实现AOP的技术,主要分为两⼤类:⼀是采⽤动态代理技术,利⽤截取消息的⽅式,对该消息进⾏装饰,以取代原有对象⾏为的执⾏;⼆是采⽤静态织⼊的⽅式,引⼊特定的语法创建“⽅⾯”,从⽽使得编译器可以在编译期间织⼊有关“⽅⾯”的代码,属于静态代理
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论