全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📝 1 篇文章 20 道配套习题

Spring 容器扩展点专题

专题说明

本专题讲解Spring IoC容器提供的扩展机制,包括BeanPostProcessor、BeanFactoryPostProcessor、Aware接口、InitializingBean等核心扩展点。

学习目标

  1. 理解BeanPostProcessor的工作时机和作用
  2. 掌握BeanFactoryPostProcessor的使用场景
  3. 了解各类Aware接口的功能
  4. 学会自定义容器扩展点

学习内容

  • BeanPostProcessor:Bean实例化后的处理
  • BeanFactoryPostProcessor:Bean定义阶段的处理
  • Aware接口:获取容器资源的回调
  • InitializingBean/DisposableBean:生命周期回调

学习建议

容器扩展点是Spring框架的精髓所在,理解这些扩展点有助于深入理解Spring工作机制,也是开发框架级组件的基础。

📝 发现内容有误?点击此处直接编辑

📝 配套习题(20 题)

1
判断题

BeanFactoryAware接口允许Bean获取对其所在BeanFactory的引用,从而可以以编程方式查找或操作其他Bean。

A

B

2
判断题

BeanFactoryAware的setBeanFactory()方法在Bean的属性填充之后、初始化方法(如@PostConstruct)执行之前被调用。

A

B

3
判断题

使用BeanFactoryAware获取BeanFactory引用是Spring推荐的依赖获取方式,应优先于@Autowired注解使用。

A

B

4
单选题

BeanFactoryAware接口中定义的方法名称是?

A

setFactory(BeanFactory factory)

B

setBeanFactory(BeanFactory beanFactory)

C

injectBeanFactory(BeanFactory beanFactory)

D

configureBeanFactory(BeanFactory beanFactory)

5
判断题

InitializingBean接口定义了afterPropertiesSet()方法,该方法在Bean的所有属性被设置之后自动调用,用于执行初始化逻辑。

A

B

6
判断题

DisposableBean接口的destroy()方法在Bean被销毁时调用,用于释放资源,如关闭数据库连接、文件句柄等。

A

B

7
判断题

当一个Bean同时使用@PostConstruct注解和实现InitializingBean接口时,@PostConstruct方法先于afterPropertiesSet()方法执行。

A

B

8
单选题

InitializingBean接口定义的初始化方法名称是?

A

init()

B

initialize()

C

afterPropertiesSet()

D

onInit()

9
判断题

Aware接口是Spring提供的一个标记接口,本身不定义任何方法,用于表明实现类需要从Spring容器获取某种资源。

A

B

10
判断题

Aware接口的方法调用发生在Bean的属性填充阶段,而不是初始化阶段。

A

B

11
判断题

Spring提供了多个Aware子接口,如BeanNameAware可以获取Bean的名称,EnvironmentAware可以获取环境配置信息。

A

B

12
单选题

Spring设计Aware接口系列的主要目的是?

A

提供Bean之间的通信机制

B

让Bean能够感知并获取Spring容器的内部资源

C

实现Bean的自动装配功能

D

提供Bean的配置管理能力

13
单选题

ApplicationListener接口在Spring事件机制中的作用是?

A

定义事件的类型

B

监听并处理特定类型的ApplicationEvent

C

发布事件到容器

D

创建自定义事件对象

14
单选题

以下哪个是Spring容器启动完成时发布的内置事件?

A

ContextStartedEvent

B

ContextRefreshedEvent

C

ContextClosedEvent

D

ContextStoppedEvent

15
单选题

创建自定义Spring事件需要继承哪个类?

A

java.util.EventObject

B

ApplicationEvent

C

EventListener

D

ApplicationListener

16
多选题
A

实现ApplicationListener接口

B

使用@EventListener注解

C

使用@TransactionalEventListener注解

D

实现Observer接口

17
单选题
A

每个Bean实例化后立即调用

B

所有单例Bean实例化完成后调用一次

C

容器启动时调用

D

容器关闭时调用

18
单选题
A

SmartInitializingSingleton只适用于单例Bean

B

InitializingBean在每个Bean初始化时调用,SmartInitializingSingleton全局只调用一次

C

SmartInitializingSingleton在InitializingBean之前执行

D

InitializingBean是注解,SmartInitializingSingleton是接口

19
判断题
A

B

20
判断题
A

B

← 上一个专题 Spring 事务专题
下一个专题 → Spring 性能调优专题

📝 发现内容有误?点击此处直接编辑

想查看更多习题和详细解析?
小程序提供完整的题库和详细解析

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库