Spring 源码级原理专项测试
考察知识点
- Bean生命周期源码流程
- ApplicationContext启动过程
- AOP代理创建源码分析
- Spring设计模式应用
- Spring核心类源码解读
Spring Bean生命周期的正确顺序是?
以下哪些是Spring Bean生命周期中会执行的回调方法?
Spring中的Aware接口(如BeanNameAware、ApplicationContextAware)的回调时机是在Bean实例化之后、属性赋值之前执行。
BeanPostProcessor是Spring框架的重要扩展点,它有两个方法:________________________在初始化方法之前执行,________________________在初始化方法之后执行。Spring AOP的________就是在postProcessAfterInitialization方法中完成的。
在Spring的AbstractAutowireCapableBeanFactory中,创建单例Bean的核心方法是doCreateBean(),以下是其执行顺序的正确描述?
Spring解决单例Bean循环依赖的核心机制是三级缓存,其中第二级缓存的作用是?
Spring容器启动的核心流程在AbstractApplicationContext的refresh()方法中,主要包括:obtainFreshBeanFactory()获取___________,invokeBeanFactoryPostProcessors()执行________________________,registerBeanPostProcessors()注册_________________,finishBeanFactoryInitialization()完成非懒加载Bean的初始化。
Spring支持的依赖注入方式不包括以下哪种?
当一个接口有多个实现类时,@Autowired注入的匹配规则包括哪些?
Spring可以自动解决构造器注入产生的循环依赖问题。
Spring处理@Autowired注解的核心类是________________________,它实现了________________________接口用于收集注入元数据,在属性注入阶段通过_________________方法完成依赖查找和注入。
Spring在检测到循环依赖时,会抛出哪个异常?
Spring DefaultSingletonBeanRegistry中,三级缓存的Map字段分别是:一级缓存singletonObjects存储______________,二级缓存earlySingletonObjects存储__________________,三级缓存singletonFactories存储_____________用于获取早期Bean引用。
以下哪些方案可以解决构造器注入产生的循环依赖?
Spring AOP默认使用哪种代理方式?
以下关于JDK动态代理和CGLIB代理的说法正确的是?
Spring AOP代理对象是在Bean实例化之前创建的。
Spring AOP代理创建的核心类是________________________,它实现了________________________接口。在postProcessAfterInitialization方法中调用wrapIfNecessary方法判断是否需要创建代理,最终通过____________创建代理对象。
Spring AOP代理对象方法被调用时,MethodInvocation的proceed()方法的作用是?
在Spring AOP中,通过AopContext.currentProxy()可以获取当前代理对象,这需要在_______________________注解中设置exposeProxy=true,或配置spring.aop.auto.proxy-target-class属性。内部通过___________存储当前线程的代理对象引用,解决____________时代理失效问题。
📝 发现内容有误?点击此处直接编辑
长按或扫描二维码,立即体验