2021实习准备 面试题总结-Spring篇

本文总结了Spring面试中的关键知识点,包括AOP的理解,IOC的实现,BeanFactory与ApplicationContext的区别,Bean的生命周期,各种作用域,单例线程安全性,以及事务传播行为。此外,还讨论了Spring MVC的运行流程,Spring Boot的核心启动函数及常用starter组件。
摘要由CSDN通过智能技术生成

Spring篇

1.Spring的AOP理解?

AOP就是面向切面,用于将和业务无关的逻辑代码抽取并封装成一个可用的模块,减少重复代码,降低模块之间的耦合度,提高系统的可维护性。AOP的实现的关键在于代理模式,AOP代理主要分为静态代理和动态代理,静态代理为AspectJ;动态代理微Spring AOP。

  1. AspectJ是静态代理的增强,就是AOP框架会在编译阶段生成AOP代理类,将AspectJ织入进Java字节码中,运行的时候就是增强后的AOP对象。
  2. Spring AOP使用的是动态代理,所谓动态代理就是AOP不会修改字节码,而是每次运行中在内存临时为方法生成一个AOP对象,这个AOP对象包含了目标对象的全部方法,并且在特定的切点做了增强处理,并回调原始对象方法。
  3. 动态代理分为JDK和CGLib代理:
    jdk动态代理是只提供接口的代理,不支持类的代理。核心InvocationHandler接口和Proxy类,InvocationHandler通过invoke()方法反射来调用目标代码,动态的将和逻辑和业务编织在一起;然后利用InvocationHandler动态创建一个符合某一接口的实例生成目标类的代理对象。
    如果代理类没有实现InvocationHandler接口,Spring AOP会选择CGLib代理,可以运行时动态的生成一个指定类的子类对象,并覆盖其中方法添加增强代码,CGLib是通过继承来做动态代理,如果某个类被标记为final,则无法使用CGLib做动态代理。

2.Spring的IOC理解

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值